У RabbitMQ существует возможность миграции сообщений между очередями, как в пределах одной ноды, так и между различными нодами.
Для этого можно использовать плагин Shovel (вообще кроме Shovel полезно будет знать про федерацию и кластеризацию в RabbitMQ, в некоторых кейсах можно использовать и их).
Установка плагина Shovel:
rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
Пример использования Shovel для миграции очереди celery с ноды node1 на node2:
rabbitmqctl set_parameter shovel celery-migration \
'{"src-uri": "amqp://node1user:node1password@node1ip/node1vhost", "src-queue": "celery", "dest-uri": "amqp://node2user:node2password@node2ip/node2vhost", "dest-queue": "celery"}'
Для того чтобы node1 могла подключиться к node2, на второй должен быть открыть порт 5672.
Помимо использования CLI можно и использовать веб-интерфейс, пример можно посмотреть тут.
Для этого можно использовать плагин Shovel (вообще кроме Shovel полезно будет знать про федерацию и кластеризацию в RabbitMQ, в некоторых кейсах можно использовать и их).
Установка плагина Shovel:
rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
Пример использования Shovel для миграции очереди celery с ноды node1 на node2:
rabbitmqctl set_parameter shovel celery-migration \
'{"src-uri": "amqp://node1user:node1password@node1ip/node1vhost", "src-queue": "celery", "dest-uri": "amqp://node2user:node2password@node2ip/node2vhost", "dest-queue": "celery"}'
Для того чтобы node1 могла подключиться к node2, на второй должен быть открыть порт 5672.
Помимо использования CLI можно и использовать веб-интерфейс, пример можно посмотреть тут.
Комментариев нет:
Отправить комментарий