Pika:参数心跳的影响是什么?

时间:2017-10-18 07:19:07

标签: rabbitmq pika

我在官方文档和源代码中搜索它但它没有意义。

我也尝试将其设置为10或1等值,但在rabbitmq管理的Web控制台中仍显示heartbeat = 60。

enter image description here

1 个答案:

答案 0 :(得分:3)

来自RabbitMQ文档:

  

心跳超时值定义了对等体在什么时间段之后   RabbitMQ和TCP应该认为TCP连接不可达(向下)   客户端库。此值在客户端和。之间协商   RabbitMQ服务器在连接时。客户必须是   配置为请求心跳。在RabbitMQ 3.0及更高版本中,   默认情况下,经纪人将尝试协商心跳(尽管如此)   客户仍然可以否决他们)。超时以秒为单位   默认值为60(版本3.5.5之前为580)。

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会选择客户端和服务器之间的最低心跳间隔值。如果客户端或服务器未指定心跳间隔值或指定为零,则如果存在,则采用指定值,否则为零(这意味着禁用心跳)。尽管如此,并不意味着使用低心跳间隔总是一个好主意。