Java NIO - 序列化与反序列化 - 使用JSON协议通信
JSON(JavaScript Object Notation,JS 对象简谱)是一种轻量级的数据交换格式。它是基于 ECMAScript(欧洲计算机协会制定的 JS 规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。JSON 协议是一种文本协议,非常易于人阅读和编写,同时也易于机器解析和生成,并能有效地提升网络传输效率。
Java NIO - Netty Decoder 与 Encoder 核心组件
在 Netty 中,数据的流动就像工厂的流水线,核心任务之一是实现二进制数据(ByteBuf)与业务对象(POJO)之间的互相转换:
- 入站处理 (Inbound) 需要实现字节到对象的转变(拆包解密):底层 Java 通道读取到 ByteBuf 二进制数据,进入流水线。通过 Decoder(解码器),将晦涩难懂的二进制字节码“翻译”成程序可以直接处理的 POJO 业务对象,以实现让后续的业务逻辑处理器能够直接读取结构化数据。
- 出站处理 (Outbound) 需要实现从对象到字节的转变(封包加密):业务处理完成后,产生一个 POJO 业务对象准备发送。通过 Encoder(编码器),将该对象 “打包” 还原成能够通过网络传输的 ByteBuf 二进制数据,最终交给底层 Java 通道,发送至远端设备。