У меня есть потребительское приложение Java, которое подключается к неудаляемому разветвленному обмену RabbitMQ (3.2.4) под названием «my_exhange_foo»:
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, но не может понять, какова цель объявления обмена на стороне потребителя. Буду признателен, если кто-то может пролить свет на это.