Netty:Pipeline 消息传播、Handler 选型与 Reactor 模型易错点解析2026-11-012026-11-01技术易混淆概念/NettyNetty 的网络通信涉及多个层次:IO 多路复用负责监听就绪事件,Reactor 负责组织事件分发,Pipeline 负责事件传播,Handler 负责具体业务处理,Future 则用于表示异步操作的执行结果。 如果混淆这些概念,就容易在消息编码、引用计数、线程中断和资源关闭等方面出现错误理解。 2026-11-01|8|0|0
Java NIO:compact() 的正确理解与常见问题2026-11-012026-11-01技术易混淆概念/java一、compact() 是什么? compact() 的作用是:保留 Buffer 中尚未读取的数据,将它们移动到缓冲区开头,并将 position 设置为剩余数据的长度,以便继续写入新数据。 它主要解决一个问题: 当 Buffer 中的数据没有处理完,又需要接收新数据时,如何保留之前未处理的数据?2026-11-01|5|0|0
Java NIO:compact() 的正确理解与常见问题2026-11-01技术易混淆概念/java一、compact() 是什么? compact() 的作用是:保留 Buffer 中尚未读取的数据,将它们移动到缓冲区开头,并将 position 设置为剩余数据的长度,以便继续写入新数据。 它主要解决一个问题: 当 Buffer 中的数据没有处理完,又需要接收新数据时,如何保留之前未处理的数据?2026-11-01|7|0|0
Netty:LengthFieldBasedFrameDecoder 五个参数与 lengthAdjustment 计算原理2026-11-012026-11-01技术Netty/易混淆概念一、先理解长度字段的三个概念 使用 LengthFieldBasedFrameDecoder 时,最容易混淆的是:长度字段本身占多少字节,以及长度字段里面存储的数值是多少。 例如协议: [Magic 2字节][BodyLength 2字节][Body 10字节]2026-11-01|8|0|0
Netty:Channel 生命周期、连接管理与 ChannelGroup 使用2026-11-01技术Netty/易混淆概念一、Channel 生命周期与状态 Channel 从注册、连接到关闭,会经历一系列生命周期事件。正常建立连接后再关闭,典型顺序如下: channelRegistered() ↓ channelActive() ↓ channelRead() / channelRea2026-11-01|7|0|0
Netty:自定义 TCP 通信协议设计与编解码实现2026-10-312026-10-31技术易混淆概念/Netty一、为什么需要自定义 TCP 协议? TCP 是面向字节流的协议,不保留应用层消息边界。客户端和服务端需要约定统一的消息格式,才能正确识别和解析数据。 自定义协议主要解决: 1. 如何判断一条消息从哪里开始、在哪里结束。 2. 如何区分登录、心跳、业务数据等消息类型。 3. 如何识别协议版本。 4.2026-10-31|7|0|0
Netty:常见 ChannelHandler 分类、作用与 WebSocket 处理机制2026-10-31技术易混淆概念/network/Netty一、ChannelHandler 是什么? ChannelHandler 是 Netty 中负责处理网络事件和消息的组件。 每个 Channel 都有一个对应的 ChannelPipeline,其中可以添加多个 Handler,组成消息处理链。 Netty Handler 主要分为两类: Chann2026-10-31|12|0|0
Netty:channelInactive 与 channelUnregistered2026-10-30技术易混淆概念/Netty一、channelInactive 与 channelUnregistered 的区别 Netty 中,channelInactive() 和 channelUnregistered() 都属于 ChannelInboundHandler 的生命周期回调方法,但代表的含义不同。2026-10-30|6|0|0
Netty 问题总结:EventLoop、epoll、线程模型与异步处理2026-10-302026-10-30技术易混淆概念/Netty一、EventLoop 为什么能够管理多个 Channel? 面试问题: 一个 EventLoop 只有一个线程,为什么能够管理多个 Channel? 我的回答: 因为 EventLoop 基于 epoll 实现 I/O 多路复用,可以同时监听多个 Channel。 需要纠正: 方向正确,但 Eve2026-10-30|10|0|0
ChannelPipeline 与 Handler 事件传播机制2026-10-302026-10-30技术易混淆概念/Netty一、ChannelPipeline 是什么? ChannelPipeline 是 Netty 中负责管理多个 ChannelHandler 的处理链。 每个 Channel 都有自己的 Pipeline。 Pipeline 主要负责: 消息拆包、粘包处理。 字节数据的编码和解码。 业务逻辑处理。 连2026-10-30|8|0|0