Pika:参数heartbeat在connection中有什么作用?
Pika: What's the effect of parameter heartbeat in connection?
我在官方文档和源代码中都搜索过,但没有任何意义。
我也尝试将它设置为 10 或 1 之类的值,但它仍然在 rabbitmq 管理的 Web 控制台中显示 heartbeat=60。
来自 RabbitMQ 文档:
The heartbeat timeout value defines after what period of time the peer
TCP connection should be considered unreachable (down) by RabbitMQ and
client libraries. This value is negotiated between the client and
RabbitMQ server at the time of connection. The client must be
configured to request heartbeats. In RabbitMQ versions 3.0 and higher,
the broker will attempt to negotiate heartbeats by default (although
the client can still veto them). The timeout is in seconds, and
default value is 60 (580 prior to release 3.5.5).
https://www.rabbitmq.com/heartbeats.html
Pika 曾经在协商时选择服务器和客户端之间的最小心跳值。从 0.11 开始不再是这种情况。 Pika 选择客户端和服务器之间的最高心跳值(这是 AMQP 客户端中的规范)。这意味着如果您将心跳值设置为低于 60 秒,Pika 将始终选择 RabbitMQ 的值,因为它更高。尝试将心跳设置为高于 60 秒的值,它应该在管理控制台中可见。
不过,如果你真的想将心跳值设置为低于 60 秒的值(这有点适得其反),你仍然可以在 configuration.
中设置值
编辑 2019-01-23: 从 Pika 1.0 开始,此行为再次 has changed。现在,如果客户端和服务器都指定了非零心跳间隔值,Pika 会选择客户端和服务器之间的最小心跳间隔值。如果客户端或服务器未指定心跳间隔值或指定为零,则如果有则取指定值,否则取零(这意味着心跳被禁用)。尽管如此,这并不意味着使用低心跳间隔总是一个好主意。
我在官方文档和源代码中都搜索过,但没有任何意义。
我也尝试将它设置为 10 或 1 之类的值,但它仍然在 rabbitmq 管理的 Web 控制台中显示 heartbeat=60。
来自 RabbitMQ 文档:
The heartbeat timeout value defines after what period of time the peer TCP connection should be considered unreachable (down) by RabbitMQ and client libraries. This value is negotiated between the client and RabbitMQ server at the time of connection. The client must be configured to request heartbeats. In RabbitMQ versions 3.0 and higher, the broker will attempt to negotiate heartbeats by default (although the client can still veto them). The timeout is in seconds, and default value is 60 (580 prior to release 3.5.5).
https://www.rabbitmq.com/heartbeats.html
Pika 曾经在协商时选择服务器和客户端之间的最小心跳值。从 0.11 开始不再是这种情况。 Pika 选择客户端和服务器之间的最高心跳值(这是 AMQP 客户端中的规范)。这意味着如果您将心跳值设置为低于 60 秒,Pika 将始终选择 RabbitMQ 的值,因为它更高。尝试将心跳设置为高于 60 秒的值,它应该在管理控制台中可见。
不过,如果你真的想将心跳值设置为低于 60 秒的值(这有点适得其反),你仍然可以在 configuration.
中设置值编辑 2019-01-23: 从 Pika 1.0 开始,此行为再次 has changed。现在,如果客户端和服务器都指定了非零心跳间隔值,Pika 会选择客户端和服务器之间的最小心跳间隔值。如果客户端或服务器未指定心跳间隔值或指定为零,则如果有则取指定值,否则取零(这意味着心跳被禁用)。尽管如此,这并不意味着使用低心跳间隔总是一个好主意。