protobuf简介和使用方法

1 需求

        为了完成跨进程或跨语言的带数据结构的消息交互,我们引入序列化/发序列化技术,将多种数据序列化为无格式的二进制数据流,然后在接收端将接受的二进制数据流反序列还原为源数据结构。

2 protobuf介绍

2.1 简介

Protobuf 全称 Google Protocol Buffer,是由 Google 开发的一种轻量级、高效、可扩展的数据序列化格式。它旨在用于结构化数据的序列化,主要用于通信协议、数据存储等场景。

适用场景:

  • 网络通信:用于跨语言和跨平台的网络通信,例如 RPC(Remote Procedure Call)。
  • 持久化存储:将结构化数据序列化后存储在文件或数据库中。
  • 配置文件:用于配置文件的读写和管理。
  • 数据交换:用于不同系统之间的数据交换和共享。

总的来说,Protobuf 是一种灵活、高效的数据序列化工具,特别适用于需要在不同系统和语言间传输结构化数据的场景,同时也提供了易于使用的接口和强大的数据定义和管理能力。

2.2 优点

  • 性能好/效率高
  • 时间维度:Protobuf采用二进制编码,可以直接进行内存映射,相比XML解析速度更快。Protobuf的序列化/反序列化速度更快,可以更快地将数据从一个格式转换为另一个格式。在修改协议时,只需增加或删除字段,不用考虑XML那样涉及到数据结构和数据内容的修改,更方便快捷。
  • 空间维度:相比XML,Protobuf生成的二进制文件更小,因为它使用了紧凑的二进制编码方式。
  • 整体而言,Protobuf以高效的二进制方式存储,比XML小3到10倍,快20到100倍。
  • 代码生成机制

         在分布式系统中,因为程序代码时分开部署,比如分别为A、B。A系统在调用B系统时,无法直接采用代码的方式进行调用,因为A系统中不存在B系统中的代码。因此,A系统只负责将调用和通信的数据以二进制数据包的形式传递给B系统,由B系统根据获取到的数据包,自己构建出对应的数据对象,生成数据对象定义代码文件。这种利用编译器,根据数据文件自动生成结构体定义和相关方法的文件的机制被称作代码生成机制。
代码生成机制的优点
        首先,代码生成机制能够极大解放开发者编写数据协议解析过程的时间,提高工作效率;其次,易于开发者维护和迭代,当需求发生变更时,开发者只需要修改对应的数据传输文件内容即可完成所有的修改。

  • 支持“向后兼容”和“向前兼容”

        向后兼容:在软件开发迭代和升级过程中,"后"可以理解为新版本,越新的版本越靠后;而“前”意味着早起的版本或者先前的版本。向“后”兼容即是说当系统升级迭代以后,仍然可以处理老版本的数据业务逻辑。
向前兼容:向前兼容即是系统代码未升级ÿ

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值