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

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)站托管運營
人人人妻人人澡人人爽e| 国产亚洲av看码精品永久| 久久久久久亚洲av黄床| 中文字幕韩国三级电影| 九九视频在线观看免费观看| 亚洲国产中文一区二区久久| 99精品久久久中文字幕日本| 公交车上没穿内裤被插高潮不断| 精品国产乱码久久蜜桃| 91啪在线观看91色| 中文字幕日韩午夜精品| 91国产精品视频在线| 狼人私人影院在线观看| 亚洲欧美日韩校园春色| 国产亚洲视频一区二区观看| 亚洲成人av日韩在线| 国产欧美一区二区另类精品 | 高清偷自拍亚洲精品三区| 国产黄色免费精品网站| 欧美精品黑人三级精品| 日本在线观看高清区一区二| 偷窥偷拍视频一区二区| 国产精品熟女在线视频| 亚洲一区二区中文字幕av| 黄色三级视频久久久| 91最新精品丝袜国产在线| 日本在线不卡一区二区| 天天躁日日躁夜夜躁夜夜| 成人黄色18免费网站| 国产精品女同久久久久久| 亚洲精品成人一区二区| 国产又粗又爽视频免费| 亚洲欧美国产精品日韩| 国产精品亚洲欧美日韩在线播放| 久久久人妻精品少妇av| 日本东京热在线免费观看| 国产精品一区二区一牛影视| 精精国产xxxx视频在线不卡| 亚洲性图中文字幕在线| 日操夜操天天操夜夜操| 国产精品日本欧美一区二区|