????????當(dāng)前欧漱,分布式應(yīng)用兜挨、云計(jì)算膏孟、微服務(wù)大行其道,RPC作為其技術(shù)基石自然無(wú)比重要拌汇,甚至可以說柒桑,是RPC讓它們的流行成為了可能。所以了解并學(xué)習(xí)RPC的原理和應(yīng)用就有著不言自明的重要性噪舀。然而一開始就去理解過于術(shù)語(yǔ)化的文章或者論文對(duì)一些新手而言可能有點(diǎn)費(fèi)勁魁淳,那么就從一個(gè)簡(jiǎn)單有趣的故事開始吧。
????????本篇文章的目的只是希望能夠?qū)PC(遠(yuǎn)程過程調(diào)用)這個(gè)概念術(shù)語(yǔ)本身有一個(gè)簡(jiǎn)單籠統(tǒng)的理解与倡,僅此而已界逛。內(nèi)容copy于參考資料。:-)
如何通俗地理解RPC纺座?
????????一個(gè)陽(yáng)光明媚的早晨息拜,老婆又在翻看我訂閱的技術(shù)雜志。
????????老公净响,什么是RPC呀少欺,為什么你們程序員那么多黑話!”馋贤,老婆還是一如既往的好奇狈茉。
????????“RPC,就是Remote Procedure Call的簡(jiǎn)稱呀掸掸,翻譯成中文就是遠(yuǎn)程過程調(diào)用嘛”氯庆,我一邊看著書蹭秋,一邊漫不經(jīng)心的回答著。
????????“啥堤撵?你在說啥仁讨?誰(shuí)不知道翻譯成中文是什么意思?你個(gè)廢柴实昨,快給我滾去洗碗洞豁!”
????????“我去...”,我如夢(mèng)初醒荒给,我對(duì)面坐著的可不是一個(gè)程序員丈挟,為了不去洗碗,我瞬間調(diào)動(dòng)起全部腦細(xì)胞志电,星辰大海在我腦中匯聚曙咽,靈感涌現(xiàn)……
????????“是這樣,遠(yuǎn)程過程調(diào)用挑辆,自然是相對(duì)于本地過程調(diào)用來說的嘛例朱。”?
????????“嗯哼鱼蝉,那先給老娘講講洒嗤,本地過程調(diào)用是啥子?”
????????“本地過程調(diào)用魁亦,就好比你現(xiàn)在在家里渔隶,你要想洗碗,那你直接把碗放進(jìn)洗碗機(jī)洁奈,打開洗碗機(jī)開關(guān)就可以洗了间唉。這就叫本地過程調(diào)用〔腔辏”
????????“哎呦终吼,我可不干镀赌,那啥是遠(yuǎn)程過程調(diào)用氯哮?”
????????“遠(yuǎn)程嘛,那就是你現(xiàn)在不在家商佛,跟姐妹們浪去了喉钢,突然發(fā)現(xiàn)碗還沒洗,打了個(gè)電話過來良姆,叫我去洗碗肠虽,這就是遠(yuǎn)程過程調(diào)用啦”,多么通俗易懂的解釋玛追,我真是個(gè)天才税课!
????????“哦闲延!我明白了”,說著韩玩,老婆開始收拾包包垒玲。
????????“你這是干啥去哦”
????????“我?我要出門浪去呀找颓,待會(huì)記得接收我的遠(yuǎn)程調(diào)用哦合愈,哦不,咱們要專業(yè)點(diǎn)击狮,應(yīng)該說佛析,待會(huì)記得接收我的RPC哦!”
????????……
如何稍加專業(yè)一點(diǎn)理解RPC彪蓬?
????????假設(shè)有一個(gè)計(jì)算器接口Calculator寸莫,以及它的實(shí)現(xiàn)類CalculatorImpl。那么在系統(tǒng)還是單機(jī)應(yīng)用時(shí)寞焙,要調(diào)用Calculator的add方法來執(zhí)行一個(gè)加運(yùn)算储狭,直接new一個(gè)CalculatorImpl,然后調(diào)用add方法就行了捣郊。這其實(shí)就是非常普通的本地函數(shù)調(diào)用辽狈,因?yàn)樵?b>同一個(gè)地址空間,或者說在同一塊內(nèi)存呛牲,所以通過方法棧和參數(shù)棧就可以實(shí)現(xiàn)刮萌。
????????現(xiàn)在娘扩,基于高性能和高可靠等因素的考慮着茸,你決定將系統(tǒng)改造為分布式應(yīng)用,將很多可以共享的功能都單獨(dú)拎出來琐旁,比如上面說到的計(jì)算器涮阔,你單獨(dú)把它放到一個(gè)服務(wù)里頭,讓別的服務(wù)去調(diào)用它灰殴。
????????在本地去調(diào)用遠(yuǎn)程機(jī)器上的執(zhí)行敬特,這個(gè)調(diào)用過程就是RPC(遠(yuǎn)程過程調(diào)用)。
總結(jié)
????????相信到這里您已經(jīng)對(duì)RPC這一概念術(shù)語(yǔ)有了一個(gè)籠統(tǒng)的理解牺陶。下一篇RPC(二)淺談RPC將可以幫助對(duì)RPC的來源以及其設(shè)計(jì)和實(shí)現(xiàn)有更多的理解伟阔。