TCP-Keepalive死连接检测
最后更新于:2022-04-02 06:24:42
# TCP-Keepalive死连接检测
[TOC]
在`TCP`中有一个`Keep-Alive`的机制可以检测死连接,应用层如果对于死链接周期不敏感或者没有实现心跳机制,可以使用操作系统提供的`keepalive`机制来踢掉死链接。 在`Server::set`配置中增加`open_tcp_keepalive=>1`表示启用`tcp keepalive`。 另外,有`3`个选项可以对`keepalive`的细节进行调整。
`Keep-Alive`机制不会强制切断连接,如果连接存在但是一直不发生数据交互。`Keep-Alive`不会切断连接。而应用层实现的心跳检测`heartbeat_check`即便连接存在,但不产生数据交互的情况下,依然会强制切断连接。
> 推荐使用`heartbeat_check`实现心跳检测
## tcp\_keepidle
单位秒,连接在`n`秒内没有数据请求,将开始对此连接进行探测。
## tcp\_keepcount
探测的次数,超过次数后将`close`此连接。
## tcp\_keepinterval
探测的间隔时间,单位秒。
';