2015-04-30 4 views
0

У меня есть потребительское приложение Java, которое подключается к RabbitMQ (3.2.4) нестираемому обмена называется ветвлением «my_exhange_foo»:Цели объявить обмен на RabbitMQ потребитель

Connection connection = connectionFactory.newConnection(consumerPool); 
Channel channel = connection.createChannel(); 
channel.exchangeDeclare("my_exhange_foo", "fanout"); // is this necessary? 

String queueName = channel.queueDeclare().getQueue(); 
channel.queueBind(queueName, "my_exhange_foo", ""); 

QueueingConsumer consumer = new QueueingConsumer(channel); 
channel.basicConsume(queueName, true, consumer); 

Потребителя приложение клиента получает сообщения независимо от того, объявлен ли обмен или нет.

Я последовал примеру ReceiveLogsDirect.java в этом учебнике https://www.rabbitmq.com/tutorials/tutorial-four-java.html

и читать api, но не могу понять, что цель объявить обмен на стороне потребителя. Я был бы признателен, если бы кто-то мог пролить свет на него.

ответ

2

Какова цель объявления обмена на стороне потребителя?

Это позволяет начать процесс потребления до начала процесса производства. Без него, если бы потребитель был запущен первым, это было бы ошибкой. Наличие гибкости для запуска потребителя во-первых полезно при работе с производственной системой, это уменьшает возможные проблемы, вызванные неотъемлемым сроком перезапуска систем.

Смежные вопросы