一、概念
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消息传输采用二进制,
protobuf序列化通信协议
最新推荐文章于 2024-09-13 17:55:28 发布
protobuf是由Google开发的开源项目,提供了一种高效的数据串行化机制,适用于消息传输和数据存储。相比XML,protobuf在性能、代码生成和兼容性方面具有优势,但牺牲了可读性和自描述性。.proto文件用于定义消息结构,包括message、enum等,支持跨平台和多语言。protobuf序列化效率高,但二进制格式不易阅读,且缺乏自描述性。
摘要由CSDN通过智能技术生成