更新時(shí)間:2025-08-20 10:10:06作者:佚名
近些年,分布式和微服務(wù)架構(gòu)非常流行,RPC在開(kāi)發(fā)任務(wù)中的應(yīng)用越來(lái)越頻繁,其重要性也日益凸顯。
今天我們探討RPC的含義是什么,探究為何要了解RPC,以及學(xué)習(xí)RPC能夠收獲哪些知識(shí)。
什么是「RPC」
RPC 全稱(chēng) Call, 的部分說(shuō)明:
遠(yuǎn)程過(guò)程調(diào)用是一種技術(shù),它由調(diào)用方發(fā)起,調(diào)用方向目標(biāo)方發(fā)送請(qǐng)求,目標(biāo)方執(zhí)行請(qǐng)求并返回結(jié)果,調(diào)用方接收結(jié)果。

此處核心在于「」部分,其次要關(guān)注 RPC中的R -「」。因此,該RPC的含義即為一種調(diào)用遠(yuǎn)程執(zhí)行方法的約定。我們通常對(duì)方法調(diào)用會(huì)遵循以下方式
= child.say("Hello World");
這種通常是指調(diào)用本地的方法,例如 Java 應(yīng)調(diào)用同一 JVM 內(nèi)的方法。
如果要將前面的代碼改為通過(guò)遠(yuǎn)程過(guò)程調(diào)用方式使用,具體寫(xiě)法會(huì)有什么不同呢?
其實(shí)是沒(méi)有的。
操作時(shí)依然遵循這種方式,配置中只需標(biāo)明該方法關(guān)聯(lián)的遠(yuǎn)程位置即可。
再舉個(gè)生活化的例子。

假如你是個(gè)招攬旅人的人,每當(dāng)收集到足夠多的客人,你就會(huì)賣(mài)力地吆喝,在各種奇特的平臺(tái)上搜索,尋找各個(gè)景點(diǎn)的向?qū)А:髞?lái)有一天,你和路邊的許多復(fù)印店達(dá)成了合作。符合條件能夠引導(dǎo)相應(yīng)景點(diǎn)的都可以在復(fù)印店「注冊(cè)」,你下次來(lái)的時(shí)候依據(jù)記錄,直接「聯(lián)系」相關(guān)的人就行,這樣會(huì)輕松很多呢。
這里我們看到兩種RPC的用形式:
直接在配置中固定寫(xiě)好遠(yuǎn)程方法的地址,請(qǐng)求是一步到位
配置里指定的注冊(cè)處地址,方法請(qǐng)求時(shí)會(huì)先去注冊(cè)處查詢(xún)方法地址,然后才進(jìn)行執(zhí)行
由此看來(lái),你一定會(huì)感嘆prc是什么意思,為何不采用一個(gè)遠(yuǎn)距離手段呢,這并不復(fù)雜,有什么值得探討的。

那我們繼續(xù)這個(gè)生活化的例子。
當(dāng)你搜集了游客聯(lián)絡(luò)頻繁合作的向?qū)Ш螅@個(gè)人卻生病了。你該找誰(shuí)呢? 你說(shuō)有「替補(bǔ)」啊,登記簿里記滿了呢。
那好,這好多個(gè)導(dǎo)游里,你「選哪一個(gè)」?
你講,看,我何必管得那么細(xì),隨便選一個(gè)打電話就行。行,這時(shí)候你就已經(jīng)應(yīng)用了RPC里的「負(fù)載均衡」,只是你的方法是采用「隨機(jī)」。
如果導(dǎo)游報(bào)名時(shí)都提交了個(gè)人影像資料和信譽(yù)等級(jí)評(píng)估,那么你不會(huì)隨便選一個(gè),會(huì)對(duì)比照片,判斷哪個(gè)看起來(lái)更可信,哪個(gè)評(píng)級(jí)更優(yōu)。這些信息都作為聯(lián)系他的參考依據(jù)。在眾多導(dǎo)游中,這個(gè)依據(jù)決定了他們被聯(lián)系的概率。這時(shí)候你的選擇不再是純粹碰運(yùn)氣,而是依據(jù)這些參考依據(jù)來(lái)篩選。
比如說(shuō)你們合作很多回,那幾個(gè)常去的地點(diǎn)總是分配給同幾位向?qū)В舜硕己苁欤看螏F(tuán)都指定找他們。這種情況下你的應(yīng)對(duì)方法就轉(zhuǎn)變?yōu)椤敢恢滦訦ash」。

后來(lái),有向?qū)Ц嬷鼇?lái)類(lèi)似他們這樣的兼職向?qū)В话l(fā)現(xiàn)主動(dòng)攬活,可能會(huì)遭到處罰,下次聯(lián)系他時(shí),少說(shuō)些話。于是你們達(dá)成一項(xiàng)簡(jiǎn)易約定:先報(bào)“是或否”,表明是否有空,再報(bào)“一至百”,說(shuō)明你們帶領(lǐng)游客參觀的地點(diǎn)。接著再報(bào)“是或否”,表示是否能夠安排購(gòu)物環(huán)節(jié)。
你會(huì)意識(shí)到,當(dāng)前你們的協(xié)議中包含著編碼,也有壓縮,每個(gè)人在接收對(duì)方信息時(shí),都必須經(jīng)過(guò)你的解碼,才能還原成真實(shí)的內(nèi)容。在 RPC 中也是這樣,在調(diào)用方法之前,需要將相應(yīng)的參數(shù)序列化,按照規(guī)定的「格式」發(fā)送,到達(dá)后進(jìn)行相應(yīng)的還原,然后執(zhí)行方法。
后來(lái),你的業(yè)務(wù)規(guī)模持續(xù)擴(kuò)大,某個(gè)旅游景點(diǎn)的導(dǎo)游們自發(fā)形成團(tuán)隊(duì)。當(dāng)你需要導(dǎo)游服務(wù)時(shí),這個(gè)團(tuán)隊(duì)的成員會(huì)依據(jù)既定規(guī)則自動(dòng)選出最合適的人選prc是什么意思,這些導(dǎo)游共同構(gòu)成的,就是一個(gè)「」
公司規(guī)模持續(xù)擴(kuò)大之際,你組建了專(zhuān)門(mén)團(tuán)隊(duì),這些成員會(huì)定期與各導(dǎo)游團(tuán)隊(duì)溝通,評(píng)估該景點(diǎn)是否具備合作條件,在此期間,該團(tuán)隊(duì)承擔(dān)著監(jiān)督職責(zé)。
(一口老血,編不下去了……)
接下來(lái)要說(shuō)的是,我們?yōu)槭裁匆獙W(xué)習(xí) RPC。
為什么要學(xué)習(xí) RPC

為何要研習(xí) RPC 技術(shù)? 早先我們?cè)峒埃⒎?wù)架構(gòu)與分布式系統(tǒng)已成為普遍的開(kāi)發(fā)模式,而 RPC 在這些模式中扮演著關(guān)鍵角色。掌握 RPC 知識(shí),有助于深入理解并勝任復(fù)雜應(yīng)用的設(shè)計(jì)與構(gòu)建工作。
此外,RPC 包含的各種技術(shù),能讓學(xué)習(xí)者見(jiàn)識(shí)更加開(kāi)闊,每個(gè)領(lǐng)域,都值得鉆研。而鉆研技術(shù),尤其是源代碼,又會(huì)反過(guò)來(lái)加深對(duì) RPC 的理解,從而寫(xiě)出更高質(zhì)量的代碼。
學(xué)習(xí) RPC 我們能掌握什么
我們上面的生活化例子中,提到了這些技術(shù)
2025-08-20 10:04
2025-08-20 09:07
2025-08-20 09:06