基本介绍:
- 编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码
- codec(编码器)的组成部分有两个:decoder(解码器)负责把字节码数据转换成业务数据 和 encoder(编码器)负责把业务数据转换成字节码数据。

Netty 提供的编码器:
| 编码器 | 说明 |
| StringEncoder | 对字符串数据进行编码 |
| ObjectEncoder | 对 Java 对象进行编码 |
Netty 提供的解码器:
| 解码器 | 说明 |
| StringDecoder | 对字符串数据进行解码 |
| ObjectDecoder | 对 Java 对象进行解码 |
Netty 自身提供问题:
Netty 本身自带的ObjectDecoder 和 ObjectEncoder 可以用来实现 POJO 对象或各种业务对象的编码和解码,底层使用的仍是 Java 序列化技术,而 Java 序列化技术本身效率就不高
- 无法跨语言
- 序列化后的体积太大,是二进制编码的5倍多
- 序列化性能太低

Netty框架提供了如StringEncoder和ObjectEncoder等编码器,用于将数据转换为字节码,以及StringDecoder和ObjectDecoder进行反向转换。然而,Netty内置的ObjectDecoder/Encoder基于Java序列化,这可能导致效率低下且序列化后的数据体积大,不适合跨语言通信。Java序列化的性能和二进制编码相比差距明显。
2412

被折叠的 条评论
为什么被折叠?



