欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

RPC框架的底層是什么原理

這篇文章給大家介紹RPC框架的底層是什么原理,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元王益做網(wǎng)站,已為上家服務(wù),為王益各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

1. RPC框架的概念

RPC(Remote Procedure Call)–遠程過程調(diào)用,通過網(wǎng)絡(luò)通信調(diào)用不同的服務(wù),共同支撐一個軟件系統(tǒng),微服務(wù)實現(xiàn)的基石技術(shù)。

使用RPC可以解耦系統(tǒng),方便維護,同時增加系統(tǒng)處理請求的能力。

RPC框架的底層是什么原理

上面是一個簡單的軟件系統(tǒng)結(jié)構(gòu),我們拆分出來用戶系統(tǒng)和訂單系統(tǒng)做為服務(wù)存在,讓不同的站點去調(diào)用。

只需要引入各個服務(wù)的接口包,在代碼中調(diào)用RPC服務(wù)就跟調(diào)用本地方法一樣,我剛接觸到這種調(diào)用方式的時候頗為驚奇,我明明調(diào)用的就是java語言方法?。ㄒ裫ava為例,現(xiàn)在RPC框架一般都支持多語言),怎么就調(diào)用了遠程的服務(wù)了呢??

2. RPC框架的原理解析

最近自己寫了一個簡單的RPC框架KRPC,原理分析結(jié)合中代碼,均為該框架源碼。

2.1 流程縱覽

RPC框架的底層是什么原理

如上圖所示,我將一個RPC調(diào)用流程概括為上圖中5個流程,左邊3個為客戶端流程,右邊兩個為服務(wù)端流程。

下面就各流程進行解析

2.2 客戶端調(diào)用

服務(wù)調(diào)用方在調(diào)用服務(wù)時,一般進行相關(guān)初始化,通過配置文件/配置中心 獲取服務(wù)端地址用戶調(diào)用。

// 用戶服務(wù)接口public interface UserService { public User genericUser(Integer id,String name,Long phone);}//調(diào)用方//服務(wù)初始化KRPC.init("D:\\krpc\\service\\demo\\conf\\client.

一開始接觸RPC調(diào)用方法肯定就有疑惑,它不是一個接口嗎,直接調(diào)用應(yīng)該沒啥效果啊,我也沒有引入實現(xiàn)包。

帶著這個疑惑,我們就進入下一個知識點,動態(tài)代理。

2.3 動態(tài)代理

動態(tài)代理這東西意如其名,它代理你幫你做事情,動態(tài)代理看這篇文章《詳解 Java 中的三種代理模式》。

上面我們不說道直接調(diào)用一個接口中的方法,并且沒有用該接口的實現(xiàn)類調(diào)用,那么方法是怎么生效的呢?

可以看到這個用戶服務(wù)這個service是由ProxyFactory代理工程創(chuàng)造的,在該ProxyFactory#create()方法中就跟一個代理處理器綁定在一起了。

@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {    //構(gòu)造請求request    Request request = new Request();    ....    return RequestHandler.request(serviceName, request,returnClass);}

這個類實現(xiàn)了InvocationHandler接口(JDK提供的動態(tài)代理技術(shù)),每次去調(diào)用接口方法,最終都交由該handler進行處理。

這個環(huán)節(jié)一般會獲取方法的一些信息,例如方法名,方法參數(shù)類型,方法參數(shù)值,返回對象類型。

同時這個環(huán)節(jié)會提供序列化功能,一般的RPC網(wǎng)絡(luò)傳輸使用TCP(哪怕使用HTTP)傳輸,這里也要將這些參數(shù)進行封裝成我們定義的數(shù)據(jù)接口進行傳輸。

2.4 網(wǎng)絡(luò)傳輸

我們通過將方法參數(shù)進行處理后,就要使用發(fā)起網(wǎng)絡(luò)請求,使用tcp傳輸?shù)木屠胹ocket通信進行傳輸,這一塊我開源項目中使用的同步堵塞的方案進行請求,也可以使用一些非堵塞方案進行請求,效率會更高一些。

關(guān)于RPC框架的底層是什么原理就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站欄目:RPC框架的底層是什么原理
網(wǎng)站路徑:http://aaarwkj.com/article14/igjcge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、軟件開發(fā)、服務(wù)器托管、網(wǎng)站制作企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
五月爱婷婷六月爱丁香色| 亚洲人成伊人成综合网中文| 美女午夜福利一区二区| 极品人妻视频中文字幕| 亚洲av乱码一区二区三四五六七| 在线看黄色片播放器日韩| 日韩欧美精品在线观看免费| 麻豆人妻一区二区三区| 国外男女性生活在线视频| av毛片天堂在线观看| 永久免费成人在线视频| 一区不卡在线视频免费国产| 乱熟av一区二区三区| 国产成人亚洲精品在线看| 日韩在线视频精品一区| 手机不卡高清播放一区二区| 偷怕自拍在线免费观看| 国产一区二区三区不卡av| av免费在线不卡观看| 久久精品欧美日韩视频| 91精品国产人妻女教师| 国产午夜在线观看免费视频| 亚洲欧美日韩一区91| 在线观看国产高清自拍| 国产精品日本一区二区| 国产一区二区伦理视频| 中文字幕日本精品人妻在线| 国产三级亚洲三级在线理论| 精品黄色大片不卡国产| 91在线观看高清免费| 粉嫩国产av一区二区三区| 欧美国产日韩二区一区在线| 欧美国产日韩一区二区三区视频| 日韩欧美高清一区二区三区| 日本在线高清精品人妻| 日韩欧美精品久久黄| 日韩精品亚洲专区在线观看| 亚洲av成人三区国产精品| 欧美黄片在线免费观看视频| 国产激情小网站免费看| 国产成年人拍拍免费视频|