nat*_*tke 3 heartbeat rabbitmq
根据 RabbitMQ 文档:
心跳超时值定义了 RabbitMQ 和客户端库在多长时间后应将对等 TCP 连接视为不可访问(关闭)。该值是在连接时客户端和 RabbitMQ 服务器之间协商的。客户端必须配置为请求心跳。在 RabbitMQ 3.0 及更高版本中,默认情况下,代理将尝试协商心跳(尽管客户端仍然可以否决它们)。超时以秒为单位,默认值为 60(3.5.5 版本之前为 580)。
(https://www.rabbitmq.com/heartbeats.html)
我在解码“客户端必须配置为请求心跳”这句话时遇到问题。
这是否意味着如果客户端不请求心跳,则不会发送心跳消息?如果是这样,服务器默认值有什么意义?
我查看了 Java 和 C# 客户端,它们的客户端默认值为 60 秒。有没有不默认这个的客户端?
来自文档:
请注意,如果 RabbitMQ 服务器配置了非零心跳超时(这是从 3.6.x 开始的版本中的默认值),客户端只能降低该值,而不能增加该值。
在任何情况下,服务器指定默认值都没有什么坏处。协商心跳时,服务器向客户端发送其首选项,并且客户端可以配置为考虑服务器默认值。
https://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.tune
https://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.tune-ok
| 归档时间: |
|
| 查看次数: |
11970 次 |
| 最近记录: |