HTTP和RPC的相同點(diǎn):底層通訊都是基于socket,都可以實(shí)現(xiàn)遠(yuǎn)程調(diào)用,都可以實(shí)現(xiàn)服務(wù)調(diào)用服務(wù)。
HTTP和RPC的不同點(diǎn):
RPC:框架有:dubbo、cxf、(RMI遠(yuǎn)程方法調(diào)用)Hessian
當(dāng)使用RPC框架實(shí)現(xiàn)服務(wù)間調(diào)用的時(shí)候,要求服務(wù)提供方和服務(wù)消費(fèi)方 都必須使用統(tǒng)一的RPC框架,要么都dubbo,要么都cxf
跨操作系統(tǒng)在同一編程語言內(nèi)使用
優(yōu)勢(shì):調(diào)用快、處理快
http:框架有:httpClient
當(dāng)使用http進(jìn)行服務(wù)間調(diào)用的時(shí)候,無需關(guān)注服務(wù)提供方使用的編程語言,也無需關(guān)注服務(wù)消費(fèi)方使用的編程語言,服務(wù)提供方只需要提供restful風(fēng)格的接口,服務(wù)消費(fèi)方,按照restful的原則,請(qǐng)求服務(wù),即可
跨系統(tǒng)跨編程語言的遠(yuǎn)程調(diào)用框架
優(yōu)勢(shì):通用性強(qiáng)
服務(wù)發(fā)現(xiàn)
首先要向某個(gè)服務(wù)器發(fā)起請(qǐng)求,你得先建立連接,而建立連接的前提是,你得知道IP地址和端口。這個(gè)找到服務(wù)對(duì)應(yīng)的IP端口的過程,其實(shí)就是服務(wù)發(fā)現(xiàn)。
在HTTP中,你知道服務(wù)的域名,就可以通過DNS服務(wù)去解析得到它背后的IP地址,默認(rèn)80端口。
而RPC的話,就有些區(qū)別,一般會(huì)有專門的中間服務(wù)去保存服務(wù)名和IP信息,比如consul或者etcd,甚至是redis。想要訪問某個(gè)服務(wù),就去這些中間服務(wù)去獲得IP和端口信息。由于dns也是服務(wù)發(fā)現(xiàn)的一種,所以也有基于dns去做服務(wù)發(fā)現(xiàn)的組件,比如CoreDNS。
可以看出服務(wù)發(fā)現(xiàn)這一塊,兩者是有些區(qū)別,但不太能分高低。
底層連接形式
以主流的HTTP1.1協(xié)議為例,其默認(rèn)在建立底層TCP連接之后會(huì)一直保持這個(gè)連接(keep alive),之后的請(qǐng)求和響應(yīng)都會(huì)復(fù)用這條連接,而RPC協(xié)議,也跟HTTP類似,也是通過建立TCP長(zhǎng)鏈接進(jìn)行數(shù)據(jù)交互,但不同的地方在于,RPC協(xié)議一般還會(huì)再建個(gè)連接池,在請(qǐng)求量大的時(shí)候,建立多條連接放在池內(nèi),要發(fā)數(shù)據(jù)的時(shí)候就從池里取一條連接出來,用完放回去,下次再?gòu)?fù)用,可以說非常環(huán)保。
審核編輯:湯梓紅
-
HTTP
+關(guān)注
關(guān)注
0文章
521瀏覽量
32448 -
RPC
+關(guān)注
關(guān)注
0文章
111瀏覽量
11795
發(fā)布評(píng)論請(qǐng)先 登錄
云計(jì)算和人工智能有什么區(qū)別和聯(lián)系
SMO與SMP的區(qū)別與聯(lián)系
HTTP 1.1 和 HTTP 2.0 的區(qū)別
HTTP 和 HTTPS 的區(qū)別
RPC的基本原理和主要特點(diǎn)

Dubbo源碼淺析(一)—RPC框架與Dubbo

如何手搓一個(gè)自定義的RPC 遠(yuǎn)程過程調(diào)用框架

柔性機(jī)器人與剛性機(jī)器人區(qū)別與聯(lián)系


TSMaster RPC 基礎(chǔ)入門:編程指導(dǎo)和使用說明

預(yù)訓(xùn)練和遷移學(xué)習(xí)的區(qū)別和聯(lián)系
生成式AI與神經(jīng)網(wǎng)絡(luò)模型的區(qū)別和聯(lián)系
神經(jīng)元與神經(jīng)網(wǎng)絡(luò)的區(qū)別與聯(lián)系
鴻蒙開發(fā)通信與連接:ohos.rpc RPC通信

評(píng)論