1.编码和解码基本介绍
1>.编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据
,在发送数据时就需要编码
,接收数据时就需要解码;
2>.codec(编解码器)的组成部分有两个: decoder(解码器)和 encoder(编码器)
.encoder(编码器)负责把业务数据转换成字节码数据,而decoder(解码器)负责把字节码数据转换成业务数据;
2.Netty本身的编码解码的机制和问题分析
1>.Netty自身提供了一些codec(编解码器);
2>.Netty提供的编码器:
①.StringEncoder: 对字符串数据进行编码;
②.ObjectEncoder: 对Java对象进行编码;
…
3>.Netty提供的解码器:
①.StringDecoder: 对字符串数据进行解码;
②.ObjectDecoder: 对Java对象进行解码;
…
4>.Netty本身自带的ObjectDecoder和ObjectEncoder可以用来实现POJO对象或各种业务对象的编码和解码,底层使用的仍是Java序列化技术
,而Java序列化技术本身效率就不高,存在如下问题
:
①.无法跨语言;
②.序列化后的体积太大,是二进制编码的5倍多;
③.序列化性能太低;
…