mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
现实运用中出现:client已经不存在但server端的连接仍然是存活状态。
在此种网络异常状态时,stop canal server会一直hang住。
原因:异常网络连接由于无数据传输,导致 io worker线程一直loop selector而无法退出。
解决方案:1. 设置keepalive 由os 监控。
2. 设置netty idle 机制,定时检测并主动close socket。(fix 时间单位bug)
3. 每次新创建socket channel时存储在一个容器内,在stop canal
server时,从容器内主动释放所有socket channel。