1. 什么是心跳机制 HeartBeat
在 TCP 长连接 keepAlive
的应用场景下,client 端一般不会主动关闭它们之间的连接,Client 与 Server 之间的连接如果一直不关闭的话,随着客户端连接越来越多,Server 早晚有扛不住的时候,这时候 Server 端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致 Server 端服务受损
所谓心跳机制 / 心跳检测, 即在 TCP长连接中 , 客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线, 以确保 TCP连接的有效性.
2. 如何实现心跳机制
我们可以通过两种方式实现心跳机制:
-
💧 使用 TCP 协议层面的 keepalive 机制.
在 Netty 中使用该策略:
.childOption(ChannelOption.SO_KEEPALIVE