Netty:Pipeline 消息传播、Handler 选型与 Reactor 模型易错点解析
Netty 的网络通信涉及多个层次:IO 多路复用负责监听就绪事件,Reactor 负责组织事件分发,Pipeline 负责事件传播,Handler 负责具体业务处理,Future 则用于表示异步操作的执行结果。 如果混淆这些概念,就容易在消息编码、引用计数、线程中断和资源关闭等方面出现错误理解。
2026-11-01
|
8
|
0
|
0
Java NIO:compact() 的正确理解与常见问题
一、compact() 是什么? compact() 的作用是:保留 Buffer 中尚未读取的数据,将它们移动到缓冲区开头,并将 position 设置为剩余数据的长度,以便继续写入新数据。 它主要解决一个问题: 当 Buffer 中的数据没有处理完,又需要接收新数据时,如何保留之前未处理的数据?
2026-11-01
|
5
|
0
|
0
Netty:核心原理串联与综合场景分析
一、Netty 服务端的整体工作流程 典型 TCP 服务端从客户端连接到消息响应,大致经历: 客户端发起 TCP 连接 │ ▼ Boss EventLoopGroup 接收连接 │ ▼ Worker EventLoopGroup 管理客
2026-11-01
|
6
|
0
|
0
Netty:TCP_NODELAY、Nagle 算法与服务端连接管理
一、Nagle 算法与 TCP_NODELAY 1. Nagle 算法解决什么问题? TCP 是字节流协议。应用程序可能频繁写入很少的数据,例如每次只写入几个字节。如果每次小数据写入都立即形成独立 TCP 数据段,可能产生大量小数据段,增加网络协议头开销。 Nagle 算法的目标是减少小 TCP 数
2026-11-01
|
2
|
0
|
0
Netty:EventLoop 线程隔离、业务线程池与背压控制
一、为什么 EventLoop 不能执行耗时任务? Netty 使用 Reactor 线程模型处理网络事件。一个 EventLoop 通常会负责多个 Channel,并在自己的线程中处理这些 Channel 的 IO 事件和 Pipeline 事件。 例如: EventLoop-1 ├── Ch
2026-11-01
|
7
|
0
|
0
Java NIO:compact() 的正确理解与常见问题
一、compact() 是什么? compact() 的作用是:保留 Buffer 中尚未读取的数据,将它们移动到缓冲区开头,并将 position 设置为剩余数据的长度,以便继续写入新数据。 它主要解决一个问题: 当 Buffer 中的数据没有处理完,又需要接收新数据时,如何保留之前未处理的数据?
2026-11-01
|
7
|
0
|
0