У меня есть две машины, на которых работают RabbitMQ, Master (ip1) и Slave (ip2), и я отразил их, добавил политику, синхронизировал очередь и обмен, но когда я отправляю сообщения, и мастер отключается, подчиненный перестает отвечать и мое приложение больше не может отправлять сообщения.
У меня есть виртуальный хост, надежная очередь и обмен, политика продвижения подчиненного.
Полис
Pattern ^test
Apply to all
Definition
ha-mode: exactly
ha-params: 5
ha-promote-on-failure: always
ha-promote-on-shutdown: always
ha-sync-mode: automatic
queue-master-locator: random
Priority 0
Это приложение, которое я использую для публикации сообщений (РЕДАКТИРОВАТЬ: очередь уже установлена на пользовательском интерфейсе RabbitMQ)
import pika
import time
credentials = pika.PlainCredentials('usr', 'pass')
parameters = pika.ConnectionParameters('ip1',
5672,
'virtual_host',
credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
channel.exchange_declare(
exchange="test_exchange",
exchange_type="direct",
passive=False,
durable=True,
auto_delete=False)
##channel.queue_declare(queue='test', durable=True, exclusive=False, auto_delete=False)
input('Press ENTER to begin')
for i in range(10000):
channel.basic_publish(exchange='',
routing_key='test',
body=('Hello World! '+ str(i)))
time.sleep(0.001)
print(" [x] Sent 'Hello World!'")
Я хочу, чтобы, когда мастер вышел из строя, раб получил повышение и получил сообщения.