移动端通信协议选择:json、flatbuf、protobuf、MessagePack

本文对比了JSON、Protobuf、FlatBuffers和MessagePack四种数据序列化格式的特点与性能。分析了它们各自的优缺点,如JSON的易读性,Protobuf的高效性,FlatBuffers的直接访问能力以及MessagePack的小巧快速。特别强调了不同场景下(如移动端、大数据传输)的最佳选择。
  • JSON:

 1、JSON是纯文本。
 2、JSON具有良好的自我描述性,便于阅读。

优点

1 简单易用开发成本低
2 跨语言
3 轻量级数据交换
4 非冗长性(对比xml标签简单括号闭环)

缺点

1 体积大,影响高并发
2 无版本检查,自己做兼容
3 片段的创建和验证过程比一般的XML复杂
4 缺乏命名空间导致信息混合

总结:最简单最通用的应用协议,使用广泛,开发效率高,性能相对较低,维护成本较高。

如果对性能要求不高,传输数据少,优先选择这个,现在大部分使用的是这个;

  • protobuf:

  Protobuf是一种以有效并可扩展的格式编码结构化数据的方式。

  • 语言无关、平台无关。即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台
  • 高效。即比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单
  • 扩展性、兼容性好。你可以更新数据结构,而不影响和破坏原有的旧程序

 比较强大,如果是大数据,建议使用 protobuf 性比较好,并支持数据流;

缺点:不便于阅读,库相对较大,移动端可以使用 protobuf-lite;

 

1 二进制格式,可读性差(抓包dump后的数据很难看懂)
2 对象冗余,字段很多,生成的类较大,占用空间。
3 默认不具备动态特性(可以通过动态定义生成消息类型或者动态编译支持)

总结:简单快速上手,高效兼容性强,维护成本较高;不便于阅读,库相对较大,移动端可以使用 protobuf-lite;

  • flatbuf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值