HTTP和RPC的相同點:底層通訊都是基于socket,都可以實現遠程調用,都可以實現服務調用服務。
HTTP和RPC的不同點:
RPC:框架有:dubbo、cxf、(RMI遠程方法調用)Hessian
當使用RPC框架實現服務間調用的時候,要求服務提供方和服務消費方 都必須使用統一的RPC框架,要么都dubbo,要么都cxf
優勢:調用快、處理快
http:框架有:httpClient
當使用http進行服務間調用的時候,無需關注服務提供方使用的編程語言,也無需關注服務消費方使用的編程語言,服務提供方只需要提供restful風格的接口,服務消費方,按照restful的原則,請求服務,即可
跨系統跨編程語言的遠程調用框架
優勢:通用性強
服務發現
首先要向某個服務器發起請求,你得先建立連接,而建立連接的前提是,你得知道IP地址和端口。這個找到服務對應的IP端口的過程,其實就是服務發現。
在HTTP中,你知道服務的域名,就可以通過DNS服務去解析得到它背后的IP地址,默認80端口。
而RPC的話,就有些區別,一般會有專門的中間服務去保存服務名和IP信息,比如consul或者etcd,甚至是redis。想要訪問某個服務,就去這些中間服務去獲得IP和端口信息。由于dns也是服務發現的一種,所以也有基于dns去做服務發現的組件,比如CoreDNS。
可以看出服務發現這一塊,兩者是有些區別,但不太能分高低。
底層連接形式
以主流的HTTP1.1協議為例,其默認在建立底層TCP連接之后會一直保持這個連接(keep alive),之后的請求和響應都會復用這條連接,而RPC協議,也跟HTTP類似,也是通過建立TCP長鏈接進行數據交互,但不同的地方在于,RPC協議一般還會再建個連接池,在請求量大的時候,建立多條連接放在池內,要發數據的時候就從池里取一條連接出來,用完放回去,下次再復用,可以說非常環保。

審核編輯:湯梓紅
-
HTTP
+關注
關注
0文章
537瀏覽量
35345 -
RPC
+關注
關注
0文章
114瀏覽量
12259
發布評論請先 登錄
碼神之路Netty-從零實現RPC框架課分享
工業領域為什么會用到HTTP協議
HTTP物聯網網關是什么?有什么功能?
C語言與C++的區別及聯系
HTTP通信網關是什么?有什么功能?
使用HTTP實現IAP的方法
電壓、電位、電勢和電平的區別與關系
IoT模組與IoT網關有什么區別和聯系
數字化與信息化有什么區別和聯系
HTTP協議在工業領域會用到嗎
基于RK3576開發板的http/https通訊
什么是工作電壓?什么是耐電壓?兩者的區別和聯系
HTTP和HTTPS的關鍵區別
HTTP和RPC的區別與聯系
評論