Netty从入门到精通9
第9章 心跳与断线重连:长连接可靠性保障
学习目标
- 实现 IdleStateHandler 三态空闲检测,精确控制 readerIdleTime / writerIdleTime / allIdleTime 的触发逻辑与内部调度机制
- 设计生产级心跳协议,量化不同心跳间隔的流量成本,选出最优解
- 实现指数退避断线重连,处理连接池治理、故障转移与优雅停机的完整闭环
費曼四问自检表
| 概念 | 我能向新人解释清楚吗? | 卡点 |
|---|---|---|
| IdleStateHandler | 三个参数分别检测读空闲、写空闲、全空闲,内部用 HashedWheelTimer 调度定时器,0 表示关闭该项检测 | 三个参数同时设置时的优先级关系 |
| 心跳 | 一方定期发 Ping,另一方回 Pong,确认连接存活。本质是用最小代价维持 TCP 连接的可信度 | 心跳间隔怎么选才不是拍脑袋 |
| 断线重连 | 连接断开后客户端自动重连,指数退避防止雪崩,加随机抖动防止惊群 | 重连期间消息怎么办 |
| 保活 |