我想知道是否有办法配置 RabbitMQ 以关闭丢失的连接而不管心跳。
我的问题是,如果在心跳设置为 0 的情况下打开连接并且连接丢失(例如禁用网络接口),服务器会永远保持连接打开,我知道 TCP 超时为 11 分钟,但连接甚至没有关闭几个小时以后。
我确实向服务器添加了 keepalive 配置,但结果相同(我正在使用 SSL)。
有没有办法配置服务器以关闭此连接而不管心跳配置如何?
或者也许我可以拒绝低心跳配置的连接?
环境细节:
操作系统 ubuntu 服务器 14.04
RabbitMQ 服务器版本 3.5.4
配置:
{tcp_listen_options, [binary,
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true},
{exit_on_close, true},
{keepalive, true}]}
{ssl_options, [{cacertfile, "/etc/rabbitmq/certs/cacert.pem"},
{certfile, "/etc/rabbitmq/certs/cert.pem"},
{keyfile, "/etc/rabbitmq/certs/key.pem"},
{verify, verify_peer},
{keepalive, true},
{fail_if_no_peer_cert, false}]},