1. proto buffer:
1.1. proto buffer与json的对比:
- proto buffer自带编译器,可以编译成java, python, c++等,而json在跨语言时需要自己编写代码。
- proto buffer在大数据量传输时比json节省空间。因为:
- json的格式比较重;
- proto buffer的默认序列化格式没有包括消息的长度和类型,其自有其道理,因为可以通过其他方式得知消息的长度和类型,例如:
- 一个消息存入一个文件,序列化格式无需包含长度和类型,分别可以通过文件大小和文件名得知;
- 多个消息存入一个文件,序列化格式无需包含类型,可以通过文件名得知。
2. RPC与socket:
- RPC是远程过程调用,是基于socket的封装,由于封装,传输同样的数据相比于socket需要占用更多的带宽,效率不如socket,也不如socket灵活,但是它可以帮助程序员拖离复杂的底层代码,提高开发效率。
3. 编解码器的作用:
- 划分每条消息的边界,确定长度和类型。
4. 消息分发器的作用:
- 将编解码器处理过的消息分发到处理消息的server上去处理。