我正在通过编写java/scala套接字库来学习TCP编程,并想知道如何设计心跳。
对于一些研究,有两种技术,1.定时器任务分路径和 2.任务计划程序。
在netty源代码中,有Read/WriteTimeoutHandler
和HashedWheelTimer
类。我想知道netty如何使用它?
猜测,netty 是否记录最新的消息发送/写入时间并使用HashedWheelTimer
调度程序Read/WriteTimeoutHandler
作为计时器任务来检查超时?
我还没有与netty框架家庭,只是想知道netty管理器计时器如何分配。
除了Netty,欢迎任何其他关于如何设计心跳的设计。
谢谢
有点正确...唯一不正确的是这里HashedWheelTimer
的使用。Netty 使用EventLoop
来调度任务 4.x,这也确保所有内容都在EventLoop
线程中处理。