時間:2019-04-16 14:39:50來源: 阿銘linux?
什么是RPC
RPC全稱RemoteProcedureCall——遠(yuǎn)程過程調(diào)用。在學(xué)校學(xué)編程,我們寫一個函數(shù)都是在本地調(diào)用就行了。但是在互聯(lián)網(wǎng)公司,服務(wù)都是部署在不同服務(wù)器上的分布式系統(tǒng),如何調(diào)用呢?
RPC技術(shù)簡單說就是為了解決遠(yuǎn)程調(diào)用服務(wù)的一種技術(shù),使得調(diào)用者像調(diào)用本地服務(wù)一樣方便透明。
下圖是客戶端調(diào)用遠(yuǎn)端服務(wù)的過程:
1)客戶端client發(fā)起服務(wù)調(diào)用請求。
2)clientstub可以理解成一個代理,會將調(diào)用方法、參數(shù)按照一定格式進(jìn)行封裝,通過服務(wù)提供的地址,發(fā)起網(wǎng)絡(luò)請求。
3)消息通過網(wǎng)絡(luò)傳輸?shù)椒?wù)端。
4)serverstub接受來自socket的消息
5)serverstub將消息進(jìn)行解包、告訴服務(wù)端調(diào)用的哪個服務(wù),參數(shù)是什么
6)結(jié)果返回給serverstub
7)severstub把結(jié)果進(jìn)行打包交給socket
8)socket通過網(wǎng)絡(luò)傳輸消息
9)clientslub從socket拿到消息
10)clientstub解包消息將結(jié)果返回給client。
一個RPC框架就是把步驟2到9都封裝起來。
為什么需要RPC
1、首先要明確一點:RPC可以用HTTP協(xié)議實現(xiàn),并且用HTTP是建立在TCP之上最廣泛使用的RPC,但是互聯(lián)網(wǎng)公司往往用自己的私有協(xié)議,比如鵝廠的JCE協(xié)議,私有協(xié)議不具備通用性為什么還要用呢?因為相比于HTTP協(xié)議,RPC采用二進(jìn)制字節(jié)碼傳輸,更加高效也更加安全。
2、現(xiàn)在業(yè)界提倡“微服務(wù)“的概念,而服務(wù)之間通信目前有兩種方式,RPC就是其中一種。RPC可以保證不同服務(wù)之間的互相調(diào)用。即使是跨語言跨平臺也不是問題,讓構(gòu)建分布式系統(tǒng)更加容易。
3、RPC框架都會有服務(wù)降級、流量控制的功能,保證服務(wù)的高可用。
聲明:本文為轉(zhuǎn)載類文章,如涉及版權(quán)問題,請及時聯(lián)系我們刪除(QQ: 2737591964),不便之處,敬請諒解!
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>以簡驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
2024-10-31
2024-10-31
2024-10-31
2024-10-31
2024-10-29
推薦專題
更多>