总结: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配置。