rpc和http的區別是什么 各自的優缺點有哪些


http是指從客戶端到服務器端的請求消息,rpc是遠程過程調用協議,它們之間有什么區別呢,下面是小編整理的相關內容,希望對大家有所幫助!

rpc和http的區別

1rpc和http的區別是什么

rpc和http的存在重大不同的是:http請求是使用具有標准語義的通用的接口定向到資源的,這些語義能夠被中間組件和提供服務的來源機器進行解釋。結果是使得一個應用支持分層的轉換(layers of transformation)和間接層(indirection),並且獨立於消息的來源,這對於一個Internet規模、多個組織、無法控制的可伸縮性的信息系統來說,是非常有用的。與之相比較,rpc的機制是根據語言的API(language API)來定義的,而不是根據基於網絡的應用來定義的。

2HTTP和RPC的優缺點

主要來闡述HTTP和RPC的異同,讓大家更容易根據自己的實際情況選擇更適合的方案。

傳輸協議

RPC:可以基於TCP協議,也可以基於HTTP協議

HTTP:基於HTTP協議

傳輸效率

RPC:使用自定義的TCP協議,可以讓請求報文體積更小,或者使用HTTP2協議,也可以很好的減少報文的體積,提高傳輸效率

HTTP:如果是基於HTTP1.1的協議,請求中會包含很多無用的內容,如果是基於HTTP2.0,那么簡單的封裝以下是可以作為一個RPC來使用的,這時標准RPC框架更多的是服務治理

性能消耗

RPC:可以基於thrift實現高效的二進制傳輸

HTTP:大部分是通過json來實現的,字節大小和序列化耗時都比thrift要更消耗性能

負載均衡

RPC:基本都自帶了負載均衡策略

HTTP:需要配置Nginx,HAProxy來實現

服務治理

RPC:能做到自動通知,不影響上游

HTTP:需要事先通知,修改Nginx/HAProxy配置

總結

RPC主要用於公司內部的服務調用,性能消耗低,傳輸效率高,服務治理方便。HTTP主要用於對外的異構環境,瀏覽器接口調用,APP接口調用,第三方接口調用等。


免責聲明!

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



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