- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里有几个关于 RabbitMQ 心跳的问题,但我还没有找到一个解决如何实际更改 60 秒
(580 秒
)的默认心跳值的问题以前的版本)。
如果消费者运行时间超过60秒
并且无法产生任何算作心跳的流量(例如 PHP consumers ),RabbitMQ 将关闭连接,考虑到消费者已死亡,但消费者可能会继续运行,当它尝试生成 ACK 时,连接将关闭,您会收到如下错误消息:
Broken pipe or closed connection
可以将consumer端的心跳设置为较高的值,例如1800秒
,但是如果broker配置不改变,那么会使用较低的值,以防出现默认值为60 秒
。来自 RabbitMQ 文档:
The broker and client will attempt to negotiate heartbeats by default. When both values are non-0, the lower of the requested values will be used. If one side uses a zero value (attempts to disable heartbeats) but the other does not, the non-zero value will be used.
要更改心跳值,可以在 /etc/rabbitmq/rabbitmq.conf
中添加以下行(使用 new configuration format )
heartbeat = 1800
这需要重启,所以问题是:如何在不重启的情况下更改rabbitmq心跳值?
最佳答案
我正在回答我自己的问题,因为我花了一些时间才找到如何做到这一点,documentation on how to use eval
没有多大帮助。
可以使用eval更改RabbitMQ配置值:
Evaluate an arbitrary Erlang expression.
使用rabbitmqctl eval
就可以更改心跳值,而无需重新启动,如下所示:
# Set
rabbitmqctl eval 'application:set_env(rabbit, heartbeat, 1800).'
# Get
rabbitmqctl eval 'application:get_env(rabbit, heartbeat).'
关于rabbitmq - 如何在不重启的情况下更改RabbitMQ Heartbeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886770/
我是一名优秀的程序员,十分优秀!