首页 > 其他 > 详细

Google Protobuf

时间:2020-05-04 10:22:29      阅读:63      评论:0      收藏:0      [点我收藏+]

目录:

 

1、编码和解码

  编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码。

  codec(编解码器) 的组成部分有两个:decoder(解码器) 和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据。

  netty 提供的 StringEncoder/StringDecoder 是对字符串数据进行编解码;ObjectEncoder/ObjectDecoder 是对 Java 对象进行编解码。

  ObjectEncoder/ObjectDecoder 可以用来实现 POJO 对象或各种业务对象的编解码,底层使用的是 Java 序列化技术,而 Java 序列化技术本身效率不高,并存在如下问题:

  • 无法跨语言
  • 序列化后的体积太大,是二进制编码的 5 倍多
  • 序列化性能低

  所以,引出新的解决方案:Google 的 Protobuf。

 

2、Google Protobuf

  参考文档:https://developers.google.com/protocol-buffers/docs/proto

  Protobuf 是 Google 发布的开源项目,全称 Google Protocol Buffers,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化或者说序列化。它很适合做数据存储或 RPC 数据交换格式。

  支持跨平台/跨语言,支持绝大数语言,例如 c++,c#, Java, python 等。‘

 

  Protobuf 自动生成代码:

  • 使用 Protobuf 编译器自动生成代码,Protobuf 是将类的定义使用 .proto 文件进行描述。在 IDEA 中编写 .proto 文件时,会自动提示是否下载 .protot 编写插件(protobuf support 插件),可以让语法高亮。
  • 然后通过 protoc.exe 编译器根据 .proto 自动生成 .java 文件

 

  自动生成 .java 文件 参考:

 

3、

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---

Google Protobuf

原文:https://www.cnblogs.com/xy-ouyang/p/12825132.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!