У меня есть кластер 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