protobuf序列化通信协议

protobuf是由Google开发的开源项目,提供了一种高效的数据串行化机制,适用于消息传输和数据存储。相比XML,protobuf在性能、代码生成和兼容性方面具有优势,但牺牲了可读性和自描述性。.proto文件用于定义消息结构,包括message、enum等,支持跨平台和多语言。protobuf序列化效率高,但二进制格式不易阅读,且缺乏自描述性。
摘要由CSDN通过智能技术生成

一、概念
protobuf是Google开发的开源项目。protobuf是一种串行化的数据结构信息,类似xml。主要用于消息传输中消息格式规范,数据存储。与xml相比,protobuf更小、更快、更简单、更少歧义、方便生成消息存取类。
二、protocol buffer消息优点
1.性能好,效率高
主要与xml消息格式对比。
在时间开销上,xml序列化开销不大,但解析开销很大,降低了系统性能;
在空间开销上,xml为了可读性,使用了大量冗余信息
protobuf是为了解决xml性能低的问题,而重新设计的规范;
2.代码生成机制
protobuf只需要写个.proto文件,使用protoc.exe编译生成消息的封装类(包括序列化和解析),用户可以不用自己写解析方法。
3.兼容性好
包括向后兼容及向前兼容。
向后兼容:A版本是老版本,B版本是在A的基础上升级后的版本,那么A版本发出的消息,使用B版本也能接收,只需要将B版本扩充的字段设置为可选或者赋给初始值;
向前兼容:A版本是老版本,B版本是在A的基础上升级后的版本,那么A版本也能够接收B版本发送的消息,只不过扩充的字段会被忽略。
4.支持跨平台,多语言
包括C++、java、python、javaNano、JavaScript、C#、ruby、php等等,Google官方发布的源码提供C++、java、python三种语言支持,其他的是开源社区补充的。
三、protobuf缺点
1、可读性差
为了提高性能,protobuf消息传输采用二进制,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值