日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
這么回答面試通過(guò)率提高60%,談?wù)勀銓?duì)RPC框架的理解

 有位工作6年的小伙伴,面試的時(shí)候被問(wèn)到這樣一道題,說(shuō)談你對(duì)RPC的理解。在分布式微服務(wù)架構(gòu)中,遠(yuǎn)程通信是最基本的需求。常見(jiàn)的遠(yuǎn)程通信方式有基于REST架構(gòu)的HTTP協(xié)議,以及基于RPC協(xié)議的RPC框架。今天,我給大家分享一下我的理解。

1、什么是RPC

首先,給大家介紹一下什么是遠(yuǎn)程調(diào)用。很多小伙伴會(huì)誤以為,遠(yuǎn)程調(diào)用是指跨越物理距離上的遠(yuǎn)程。實(shí)際上,準(zhǔn)確地說(shuō),遠(yuǎn)程調(diào)用是指跨進(jìn)程的功能調(diào)用。

跨進(jìn)程,可以理解為同一臺(tái)計(jì)算上的多個(gè)進(jìn)程、多個(gè)JVM或者多臺(tái)計(jì)算之間的進(jìn)程。

那什么是RPC呢?RPC的全稱是Remote Procedure Call,翻譯過(guò)來(lái)叫遠(yuǎn)程過(guò)程調(diào)用。

它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上獲取服務(wù),而不需要了解代碼網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)的一種協(xié)議。凡是符合這種協(xié)議的框架,都可以稱之為RPC框架。

通俗理解就是,A計(jì)算機(jī)提供一個(gè)服務(wù),B計(jì)算機(jī)可以像調(diào)用本地服務(wù)一樣去調(diào)用A計(jì)算機(jī)提供的服務(wù),這就是RPC的主要作用。

其實(shí),RPC的應(yīng)用在很早之前就出現(xiàn)了。在40年以前,也就是1981年的時(shí)候,由一家叫做Nelson的公司提出,并把它應(yīng)用到了分布式系統(tǒng)之間的通信協(xié)議。

2、RPC協(xié)議

要實(shí)現(xiàn)RPC,需要通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,并且對(duì)調(diào)用的過(guò)程進(jìn)行封裝?,F(xiàn)在比較流行的RPC框架一般都是采用TCP協(xié)議作為底層的傳輸協(xié)議。當(dāng)然,其他協(xié)議也是可以的,比如UDP。

RPC協(xié)議,強(qiáng)調(diào)的是過(guò)程調(diào)用,調(diào)用的過(guò)程對(duì)于用戶來(lái)說(shuō)是完全透明的,用戶不需要關(guān)心調(diào)用細(xì)節(jié)??梢韵裾{(diào)用本地服務(wù)一樣去調(diào)用遠(yuǎn)程服務(wù)。

我們來(lái)看這樣一張圖。

一個(gè)完整的RPC協(xié)議包含了四個(gè)組件,分別是Client、Server、Client Stub和Sever Stub。

Client客戶端表示服務(wù)的調(diào)用方。

Sever服務(wù)端是真正的服務(wù)提供方。

Client Stub表示客戶端存根,專門用來(lái)存放服務(wù)端的地址信息,再將客戶端的請(qǐng)求參數(shù)打包成網(wǎng)絡(luò)消息,也就是序列化,然后通過(guò)網(wǎng)絡(luò)遠(yuǎn)程發(fā)送給服務(wù)提供方。

Server Stub表示服務(wù)端存根,用來(lái)接收客戶端發(fā)送過(guò)來(lái)的消息,然后,解析消息內(nèi)容,也就是反序列化,并且調(diào)用本地方法。

3、RPC的應(yīng)用場(chǎng)景

RPC在分布式系統(tǒng)中,有非常廣發(fā)的應(yīng)用,我給大家總結(jié)為5個(gè)方面:

1、分布式系統(tǒng)網(wǎng)絡(luò)通訊

2、分布式子系統(tǒng)之間的服務(wù)治理

3、分布式負(fù)載均衡和流控

4、服務(wù)發(fā)現(xiàn)與注冊(cè)

5、構(gòu)建分布式調(diào)試環(huán)境

【導(dǎo)航條:RPC框架】

(轉(zhuǎn)場(chǎng),屏幕黑底白字,正中央出現(xiàn)“4 RPC框架)

4、RPC框架

在互聯(lián)網(wǎng)應(yīng)用開發(fā)中,隨著業(yè)務(wù)的復(fù)雜度增加,一般都會(huì)采用分布式架構(gòu)。分布式架構(gòu)的核心,就是利用多臺(tái)普通的計(jì)算機(jī)組成一個(gè)龐大的復(fù)雜計(jì)算網(wǎng)絡(luò),提供高并發(fā)、高性能、高可用的系統(tǒng)能力支撐。

在分布式架構(gòu)中,原本的單體應(yīng)用服務(wù)被拆分成多個(gè)獨(dú)立部署的服務(wù),分布式在計(jì)算機(jī)網(wǎng)絡(luò)上,這些服務(wù)必然,需要通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信和交互。而RPC框架,就是解決在分布式架構(gòu)中,各個(gè)服務(wù)之間的網(wǎng)絡(luò)通信問(wèn)題的框架。

在Java應(yīng)用中,JDK 1.1版本的時(shí)候就提供了對(duì)RPC的支持框架,叫做RMI。由于RMI不能實(shí)現(xiàn)跨域語(yǔ)言的遠(yuǎn)程調(diào)用。

后面,廣發(fā)采用WebService來(lái)實(shí)現(xiàn)遠(yuǎn)程調(diào)用,但是,WebService需要定義非常復(fù)雜的Scheme文件,導(dǎo)致無(wú)效數(shù)據(jù)內(nèi)容過(guò)于臃腫。

之后,就被HTTP加JSON的方案所代替了。

RPC發(fā)展到現(xiàn)在,實(shí)現(xiàn)的方式也非常多樣,但是基本都實(shí)現(xiàn)了跨語(yǔ)言的遠(yuǎn)程調(diào)用。

一般來(lái)說(shuō),RPC框架都應(yīng)用于大型企業(yè),只有在業(yè)務(wù)復(fù)雜度和用戶體量都比較大的時(shí)候,需要對(duì)服務(wù)進(jìn)行解耦,從而達(dá)到擴(kuò)展性強(qiáng)、部署靈活的目的。目前比較流行的開源RPC框架有Goole的gRPC、Facebook的Thrift、Alibaba的Dubbo。這些框架除了提供基礎(chǔ)的遠(yuǎn)程通信功能以外,還會(huì)在系統(tǒng)性能、傳輸效率、服務(wù)治理等方面做出一些優(yōu)化設(shè)計(jì)。

比如,阿里開源的RPC框架Dubbo就提供了非常豐富的服務(wù)治理功能。

好了,相信各位小伙伴對(duì)于RPC又有了一個(gè)更加清晰的認(rèn)識(shí)和了解。面試的時(shí)候,如果被問(wèn)到RPC的問(wèn)題,是不是知道怎么了呢?以上就是我對(duì)RPC的理解。


新聞標(biāo)題:這么回答面試通過(guò)率提高60%,談?wù)勀銓?duì)RPC框架的理解
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/dhoecig.html