RPC简介
一:為什么會(huì)出現(xiàn)RPC呢?
當(dāng)公司業(yè)務(wù)量還是很小的時(shí)候,所有的程序都放置在一臺(tái)機(jī)器上,程序之間通過(guò)函數(shù)或者類來(lái)調(diào)用。
1:當(dāng)公司的業(yè)務(wù)發(fā)展越來(lái)越大,業(yè)務(wù)線越來(lái)越多,公司后端人員也越來(lái)越多,分布在不同的業(yè)務(wù)線,不同的項(xiàng)目里,其他項(xiàng)目組開(kāi)發(fā)了一個(gè)服務(wù),另外一個(gè)組想調(diào)用這個(gè)服務(wù),這時(shí)候該怎么辦?
2:業(yè)務(wù)越來(lái)越多,我們需要?jiǎng)澐植煌臉I(yè)務(wù)模塊,需要把公共服務(wù)獨(dú)立出來(lái),如何調(diào)用這些公共服務(wù)和不同的業(yè)務(wù)模塊提供的服務(wù)?
3:如果后端有2個(gè)開(kāi)發(fā)組,做著的不同業(yè)務(wù),并且使用不同的開(kāi)發(fā)語(yǔ)言,比如php和java,那么他們之間的業(yè)務(wù)怎么相互進(jìn)行調(diào)用呢?
這時(shí)候 rpc 就應(yīng)運(yùn)而生了,它可以在不同的模塊不同語(yǔ)言之間進(jìn)行通信。
所以 rpc 是業(yè)務(wù)變得越來(lái)越多,需要對(duì)業(yè)務(wù)進(jìn)行拆分,不同的模塊提供不同的服務(wù)時(shí),各服務(wù)模塊之間相互進(jìn)行通信的一種方式。
?
二:RPC是什么?
RPC(Remote Procedure Call Protocol)——遠(yuǎn)程過(guò)程調(diào)用協(xié)議。
它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而調(diào)用者不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議,它讓調(diào)用者對(duì)網(wǎng)絡(luò)通信這些細(xì)節(jié)是透明的。
rpc采用的是客戶端<----->服務(wù)器模式。 請(qǐng)求程序是一個(gè)客戶機(jī),而服務(wù)提供程序就是一個(gè)服務(wù)器。
rpc的通信模型如下圖:
?
?三:有哪些RPC框架
各大互聯(lián)網(wǎng)公司都根據(jù)自己公司業(yè)務(wù)特點(diǎn)開(kāi)發(fā)了自己的rpc框架,如阿里巴巴的hsf、dubbo(開(kāi)源)、Facebook的thrift(開(kāi)源)、Twitter的finagle(開(kāi)源)等
下一篇我們分析下thrift框架,看看rpc框架是怎么進(jìn)行通信的,它的原理是什么?
轉(zhuǎn)載于:https://www.cnblogs.com/jiujuan/p/10269859.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: linux iptables扩展,脚本防
- 下一篇: SVN如何将版本库url访问地址中的ht