目录:
1、编码和解码
编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码。
codec(编解码器) 的组成部分有两个:decoder(解码器) 和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据。
netty 提供的 StringEncoder/StringDecoder 是对字符串数据进行编解码;ObjectEncoder/ObjectDecoder 是对 Java 对象进行编解码。
ObjectEncoder/ObjectDecoder 可以用来实现 POJO 对象或各种业务对象的编解码,底层使用的是 Java 序列化技术,而 Java 序列化技术本身效率不高,并存在如下问题:
所以,引出新的解决方案:Google 的 Protobuf。
2、Google Protobuf
参考文档:https://developers.google.com/protocol-buffers/docs/proto
Protobuf 是 Google 发布的开源项目,全称 Google Protocol Buffers,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化或者说序列化。它很适合做数据存储或 RPC 数据交换格式。
支持跨平台/跨语言,支持绝大数语言,例如 c++,c#, Java, python 等。‘
Protobuf 自动生成代码:
自动生成 .java 文件 参考:
3、
---
原文:https://www.cnblogs.com/xy-ouyang/p/12825132.html