muduo之消息处理与传输学习

来源:互联网 发布:注册广州淘宝商城公司 编辑:程序博客网 时间:2024/05/21 06:17

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上去处理。
0 0