Сбой RabbitMQ во время кластерной синхронизации. Ограничить скорость синхронизации? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть кластер RabbitMQ с двумя узлами в нем;node1 и node2.

На данный момент в кластере 3 очереди:

  • Identification (около 113 тыс. Сообщений)
  • Position (около980 тыс. Сообщений)
  • Velocity (около 1,1 м сообщений)

Все три очереди получают постоянные сообщения, поэтому они записываются на диск.Из этого вопроса я узнал, что это может вызвать некоторые накладные расходы.

node1 перезагрузился где-то за прошедшую ночь и поэтому не синхронизировался с node2.Когда я синхронизирую очередь identification через интерфейс управления, все идет хорошо.Чуть позже очередь синхронизируется на node1.

Однако при попытке синхронизировать любую из двух других очередей node1 вылетает и перезагружается.Логически я предполагаю, что это потому, что количество сообщений слишком велико для того, чтобы он его обрабатывал.Оба узла имеют верхний предел памяти 700 МБ, запустите RabbitMQ 3.7.12 и используйте Erlang 21.2.6.Автоматическая синхронизация не включена.Очереди зеркально отражаются через ha-mode: all.

Что мне интересно, есть ли способ ограничения скорости синхронизации между узлами, чтобы node1 не перегружался?Я бы предпочел, чтобы синхронизация заняла немного больше времени, чем невозможность синхронизации вообще, если размер очереди увеличился.

Редактировать: я попытался проверить файл журнала на
RABBITMQ_LOG_BASE ${install_prefix}/var/log/rabbitmq,(с здесь )
, но единственная причина, по которой журнал дает мне следующую строку:
2019-03-15 08:13:00.029 [info] <0.43.0> Application mnesia exited with reason: stopped

...