Am нового Спринг-rabbitMQ.I имеет следующие question..Please правильно, если я ошибаюсь:Spring RabbitMQ анонимной очередь
У меня есть три экземпляра приложения именно.
Instance1 instance2 Instance3
Примечание: Эти примеры не должны быть исправлены number.All этих случаев слушать тот же exchange..As количество экземпляров не фиксируется, мое требование одно и то же сообщение shuld быть полученное всеми тремя/(число может) быть переменным .. для достижения этой цели с помощью spring-amqp
Если объявить имя очереди и связать это, чтобы обмениваться сообщениями будут разбиты по экземплярам .. но я хочу, чтобы сообщения rabbitmq (сообщения от бирж) ко всем очередям. Как мы можем достичь этого. Я слышал некоторые вещи, похожие на анонимные очереди ...
Как добиться этого программно весной не через декларации XML и использование SPEL объявить идентификатора очереди
Шаг 1: Создание фабрики соединений Шаг 2: Создание обмена Шаг 3: Создание очереди Шаг 4: Создание AMQP admin, а затем объявить, что очередь Шаг 5: Привязать очередь к обмену
Также при остановке экземпляра очередь должна получить autodeleted..если они будут предоставлены в постконструкции?
Настоящий код, как simliar следующим образом:
CachingConnectionFactory ср = новый CachingConnectionFactory ("192.168.1.10", 5672);
RabbitAdmin admin = new RabbitAdmin(cf);
FanoutExchange testExchange = new FanoutExchange("testExchange", true, false);
admin.declareExchange(testExchange);
Queue testQueue = new Queue("testQueue", true, false, true);
admin.declareQueue(testQueue);
admin.declareBinding(BindingBuilder.bind(testQueue).to(testExchange));
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(cf);
container.setRabbitAdmin(admin);
container.setQueues(testQueue);
container.setMessageListener(new MessageListenerAdapter() {
public void handleMessage(String text) {
System.out.println("Received : " + text);
}
});
container.afterPropertiesSet();
container.start();
Мы уже используем обмен разветвления. Но проблема в том, что мы используем Spring amqp, в котором мы устанавливаем edscontainer.setQueueNames (queue_name); как добиться этого, используя очереди автоматического удаления –
В принципе, как мы можем справиться с этим scneario ConnectionFactory connectionFactory = new CachingConnectionFactory(); AmqpAdmin admin = новый RabbitAdmin (connectionFactory); admin.declareQueue (новая очередь («myqueue»)); –
??? В общем, вам не нужно делать это вручную. «RabbitAdmin» заботится обо всех «сущностях» и привязывает их автоматически. Если они объявлены как бобы, конечно. См. 'Queue' ctors. 'autoDelete' находится в одном из них. –