Я работаю над базовым примером и не могу его обработать.RabbitMQ Лопата базовый пример
Мне нужно переслать сообщения с одной машины (Machine1) в другую (Machine2) через очередь (TestQ). Производитель работает на Machine1 и потребителе на Machine2.
Мои настройки в кролика брокера конфигурации в MACHINE1 в:
{rabbitmq_shovel, [ {shovels, [
{shovel_test, [
{sources, [{broker, "amqp://" }]},
{destinations, [{broker, "amqp://Machine2" }]},
{queue, <<"TestQ">>},
{ack_mode, on_confirm},
{reconnect_delay, 5}
]}
]} ]}
machine2 имеет конфигурации по умолчанию и не лопата не плагин включен. Код
продюсера работает на MACHINE1:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare("TestQ", true, false, false, null);
channel.basicPublish("", "TestQ", null, "Hello World!".getBytes());
код потребителя работает на machine2:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare("TestQ", true, false, false, null);
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume("TestQ", true, consumer);
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
Выполнение rabbitmqctl Eval 'rabbit_shovel_status: статус(). на MACHINE1:
[{shovel_test,starting,{{2014,1,7},{9,47,38}}}]
...done.
Производитель посылает нормально, но я никогда не получаю получить от потребителя на machine2.
Где проблема? Что-то не хватает в брокере Machine1 или брокере Machine2?
Спасибо!
'brokers' является допустимым вариантом, на самом деле код в порядке, я нашел проблему в не открывшемся порту на сервере. Это все решило. –