RPC與HTTP的區別


轉自:https://www.cnblogs.com/111testing/p/11297037.html

1. RPC API和RESTful API

 

 (1)RPC面向過程:內部調用建議RPC

(2)RESTful 面向資源:對外開發推薦RESTful

RPC遠程調用不一定跨網絡,同一台主機的兩個進程直接也可以是RPC。REST就是一種RPC

RPC可以通過http也可以直接走socket。 選用http,是由於其更通用。

2. RPC與HTTP的不同特點

2.1 傳輸協議

(1)RPC:基於TCP,也可基於HTTP

(2)HTTP:基於HTTP

2.2傳輸效率

(1)自定義TCP協議,報文小。 如果基於HTTP2協議,也可減小報文,提高傳輸效率

(2)基於HTTP1.1協議,報文有很多無用內容,傳輸效率低

2.3 性能消耗,主要在於序列化和反序列化的耗時

(1)RPC,可以基於thrift實現高效二進制傳輸

(2)HTTP,大部分是json實現,字節大小和序列化耗時逗比thrift更消耗性能

2.4負載均衡

(1)RPC自帶負載均衡策略

(2)HTTP,需要配置Nginx,HAProxy來實現

2.5服務治理

(1)RPC,自動通知

(2)HTTP,事先通知,修改Nginx/HAProxy配置

3.總結

(1)RPC:用於公司內部服務調用,性能消耗低,傳輸效率高,服務治理方便。 實現負載,適用於開發過程使用同一的技術棧

(2)HTTP:用於對外的異構環境,瀏覽器接口調用,APP接口調用,第三方接口調用。實現簡單,更加靈活,跨語言,跨平台

微服務,強調的是獨立、自治、靈活。而RPC方式限制多,因此微服務常用基於http的Rest風格服務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM