Как настроить лопату RabbitMQ?

У меня 2 кластера RabbitMQ в разных датацентрах. В этот момент мне нужно перелопатить один из обменов от одного кролика к другому. Как я могу этого добиться?

2 ответа

Лопата плагин лучше подходит для этой задачи помогает надежно и непрерывно перемещать сообщения между кластерами (или в пределах одного кластера). Этот плагин включен в дистрибутив RabbitMQ и его легко включить (его можно настроить на одном из кластеров):

rabbitmq-plugins enable rabbitmq_shovel

Если вы предпочитаете пользовательский интерфейс, включите подключаемый модуль управления для пользовательского интерфейса управления:

rabbitmq-plugins enable rabbitmq_shovel_management 

Следующим шагом является определение самой динамической лопаты (если вы планируете постоянно перемещать сообщения между кластерами, используйте статическую лопату). Декларация лопаты довольно хорошо определена в документации. Учтите, что вам необходимо настроить src-exchange и dest-exchange вместо src-queue и dest-queue.

Чтобы дополнить ответ Сергея, вот как я создаю лопату из моего производственного кластера в тестовый кластер.

call rabbitmqctl.bat set_parameter shovel [shovel_name] "{""src-protocol"": ""amqp091"", ""src-uri"":""amqp://[username]:[password]@localhost"", ""src-exchange"": ""[source_exchange]"", ""src-exchange-key"": ""#"", ""dest-protocol"": ""amqp091"", ""dest-uri"": ""amqp://[username]:[password]@[target_cluster_server]"", ""dest-exchange"": ""[target_exchange]""}"

Он создает динамическую лопату, которую я предпочитаю, потому что она автоматически копирует себя на другие узлы исходного кластера.

Вы можете указать несколько пунктов назначения в dest-uri, поэтому, если целевой узел не работает, лопата попробует другой.

src-exchange-key потому что источник - это тематический обмен.

Я не думаю, что есть другой способ проверить поведение, кроме как посмотреть, получает ли целевая биржа то, что вы ожидаете.

https://www.rabbitmq.com/shovel.html#clustering

Другие вопросы по тегам