HTTP和RPC的優缺點主要說明HTTP和RPC的異同,便於大家根據自己的實際情況選擇更合適的方案。
傳輸協議
RPC:可以基於TCP協議,也可以基於HTTP協議。
HTTP:基於HTTP協議
傳輸效率
RPC:使用自定義的TCP協議可以使請求消息更小,或者使用HTTP2協議也可以減小消息大小,提高傳輸效率。
HTTP:如果是基於HTTP1.1的協議,請求會包含很多無用的內容。如果它是基於HTTP2.0的,那麽簡單的封裝可以作為RPC使用。此時,標準RPC框架更多的是關於服務治理。
性能消耗
RPC:基於節儉可以實現高效的二進制傳輸。
HTTP:大部分是用json實現的,字節大小和序列化時間比節儉更消耗。
負載均衡
RPC:基本上,它們都有自己的負載平衡策略。
HTTP:需要配置Nginx和HAProxy來實現。
服務治理
RPC:可以在不影響上遊的情況下實現自動通知。
HTTP:Nginx/ha proxy的配置需要提前修改。
摘要
RPC主要用於內部服務調用,性能消耗低,傳輸效率高,服務治理方便。HTTP主要用於外部異構環境,瀏覽器接口調用,APP接口調用,第三方接口調用等。