總結:RPC主要用於公司內部服務調用,傳輸效率高(TCP,報文小),性能消耗低(高效的二進制傳輸、字節小、序列化耗時少),服務治理方便:
1、傳輸協議:
RPC:可以基於HTTP協議,也可以基於TCP協議
HTTP:基於HTTP協議
2、傳輸效率:
RPC:使用自定義的TCP協議,可以讓請求報文體積更小,或者使用HTTP2協議,也可以很好的減小報文體積,提高傳輸效率
HTTP:如果是基於http1.1的協議,請求中會包含很多無用的內容,如果是基於HTTP2.0,那么簡單的封裝下可以作為一個RPC來使用,這時標准的RPC框架更多的是服務治理。
3、性能消耗:
RPC:可以基於thrift實現高效的二進制傳輸
HTTP:大部分是基於json實現的,字節大小和序列化耗時都比thrift要更消耗性能
4、負載均衡:
RPC:基本自帶了負載均衡策略
HTTP:需要配置Nginx、HAProxy配置
5、服務治理:(下游服務新增,重啟,下線時如何不影響上游調用者)
RPC:能做到自動通知,不影響上游
HTTP:需要事先通知,如修改NGINX配置。