zoukankan      html  css  js  c++  java
  • 微服务之ProtoBuf协议

    微服务之ProtoBuf协议

    序列化主要考虑占用字节的大小,以及是否支持跨语言。

    Xml、Json是目前常用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,一般用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,

    Xml、Json可读性较好

    Xml、Json序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高

    Protobuf采用了二进制字节的序列化方式,用字段索引和字段类型通过算法计算得到字段之前的关系映射,从而达到更高的时间效率和空间效率,Protobuf特别适合对数据大小和传输速率比较敏感的场合使用
    Protobuf序列后体积相比Xml、Json很小,适合网络传输。Protobuf 编码后体积大约是 JSON 的四分之一,是 XML 的五分之一

    Protobuf支持跨平台多语言。

    Protobuf消息格式升级和兼容性还不错。

    Protobuf序列和反序列化速度很快,快于Xml、Json速度。

    Protobuf应用不广(相比Xml、Json)。

    Protobuf二进制格式可读性差。

    Protobuf缺乏自描述。

  • 相关阅读:
    线程间的通信
    不用加减乘除做加法
    关键字throw(something)限制
    C++ 中的“ !” 运算
    n个骰子的点数
    State 模式
    Strategy 模式
    构造函数为什么不能是虚函数 ( 转载自C/C++程序员之家)
    n个骰子的点数
    和为S的两个数字
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/15129119.html
Copyright © 2011-2022 走看看