В SO есть несколько вопросов по поводу пульса RabbitMQ, но я не нашел ни одного, который бы касался того, как на самом деле изменить значение пульса по умолчанию 60 seconds
(580 seconds
в предыдущих версиях).
В случае, если потребитель работает дольше, чем 60 seconds
и не способен генерировать какой-либо трафик, который будет считаться тактовым импульсом (например, потребители PHP ), RabbitMQ закроет соединение с учетом потребителя не работает, но потребитель может продолжать работать, и когда он пытается произвести ACK, соединение закрывается, и вы получаете сообщение об ошибке, например:
Разбитая труба или замкнутое соединение
Можно установить сердцебиение на стороне потребителя на более высокое значение, например 1800 seconds
, но если конфигурация посредника не изменится, тогда будет использоваться более низкое значение, в случае значения по умолчанию, тогда 60 seconds
, Из документов RabbitMQ:
Брокер и клиент будут пытаться согласовать тактовые импульсы по умолчанию.
Когда оба значения не равны 0, нижнее из запрошенных значений будет
используемый. Если одна сторона использует нулевое значение (пытается отключить сердцебиение)
а другой нет, будет использоваться ненулевое значение.
Чтобы изменить значение Heartbeat, можно добавить следующую строку в /etc/rabbitmq/rabbitmq.conf
(используя новый формат конфигурации )
heartbeat = 1800
Это требует перезапуска, поэтому вопрос: Как изменить значение ритма rabbitmq без перезапуска?