Необходимо иметь доступ к UI консоли рэббита и доступ к rabbitmqadmin
rabbitmq-plugins list
При необходимости включить плагин
rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
(Все операции выполняются для vhost, очередь которого нужно дублировать)
- Создем очереди, в который будут дублироваться сообщения
- online_update_subscription_copy_1
- online_update_subscription_copy_2
- online_update_subscription_copy_3
- создаем exchange
online_update_subscription_collector
- type: fanout
- durable: true
- биндим exchange и указанные очереди
- Создем очереди, в который будут дублироваться сообщения
- online_update_customer_copy_1
- online_update_customer_copy_2
- online_update_customer_copy_3
- создаем exchange
online_update_customer_collector
- type: fanout
- durable: true
- биндим exchange и указанные очереди
- Останавливаем billing
- Добавляем в application.yml
amqp.update.subscription.queue.name: online_update_subscription_copy_1
amqp.internal.update.customer.queue.name: online_update_customer_copy_1
- Запускаем биллинг. Логи не должны содержать ошибок
- Указываем:
-
Virtual host: <нужный virtual host>
-
Name: subscription_copy_msg
-
Source:
- AMQP: по умолчанию
- URI: amqp://<user>@/<virtual-host>
- Queue.Name: online_update_subscription
- Prefetch-count: <default>
- Auto-Delete: Never
-
Distination:
- AMQP: по умолчанию
- URI: amqp://<user>@/<virtual-host>
- Exchange.Name: online_update_subscription_collector
- Acknowledgement mode: On confirm
-
- Указываем:
-
Virtual host: <нужный virtual host>
-
Name: customer_copy_msg
-
Source:
- AMQP: по умолчанию
- URI: amqp://<user>@/<virtual-host>
- Queue.Name: online_update_customer
- Prefetch-count: <default>
- Auto-Delete: Never
-
Distination:
- AMQP: по умолчанию
- URI: amqp://<user>@/<virtual-host>
- Exchange.Name: online_update_customer_collector
- Acknowledgement mode: On confirm
-
Путь сообщщений
ERP --> online_update_subscription -> online_update_subscription_collector --> (online_update_subscription_copy...) ERP --> internal_update_customer -> online_update_customer_collector --> (online_update_customer_copy...)