RPC與HTTP的區別

轉自:http://www.javashuo.com/article/p-ohyhqoxw-ms.htmlhtml

1. RPC API和RESTful APIjson

 

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

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

RPC遠程調用不必定跨網絡,同一臺主機的兩個進程直接也能夠是RPC。REST就是一種RPC負載均衡

RPC能夠經過http也能夠直接走socket。 選用http,是因爲其更通用。socket

2. RPC與HTTP的不一樣特色微服務

2.1 傳輸協議性能

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

(2)HTTP:基於HTTPhtm

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風格服務。

相關文章
相關標籤/搜索