RPC服务性能为什么比Http服务性能好
其他
2020-09-18 11:54:42
阅读次数: 0
假设
- 这里的RPC服务一般是指基于TCP/IP协议上开发的二进制协议服务
- Http服务一般是指基于Http1.0 / Http1.1协议上开发的REST服务
分析
- 序列化方式:
RPC服务序列化是针对二进制协议(0/1)来做序列化和反序列化,所以性能高。
而Http服务是基于文本的序列化和反序列化,需要读一行一行的文本(比如json格式的),进行序列化和反序列化,所以性能低。
- 报文长度:
RPC服务是自定义的传输协议,传输的报文都是干货。
而Http服务里面包括很多没用的报文内容,比如Http Header里面的accept,referer等等
- 连接的复用:
RPC服务是基于TCP/IP协议的,是长连接。
而Http服务大都是短连接,虽然Http1.1支持长连接,但是这个也是要取决于服务端是否支持长连接,不太可控。
结论
- 在追求性能的场合,用RPC服务(基于TCP/IP传输协议)
- 在追求兼容性多语言的场合,用REST服务
参考
- https://www.linkedin.com/pulse/rest-vs-rpc-soa-showdown-joshua-hartman
转载自blog.csdn.net/hudmhacker/article/details/108375757