是Spring-rabbitMQ的新手。我有以下问题。如果错了,请更正:
我有三个应用实例。
的Instance1 实例2 实例3
注意:这些实例不需要是固定的数字。所有这些实例都听同一个交换。由于实例数量没有修复,我的要求是所有三个/(数字可以)收到的相同消息shuld变量。如何使用spring-amqp实现这一目标
如果声明队列名称和绑定交换消息将在实例之间拆分..但我想将rabbitmq消息(来自交换的消息)发送到所有队列。我们怎样才能实现这一点..我听到了一些像匿名队列......
如何在Spring中以编程方式实现此方法,而不是通过xml声明并使用SPEL声明队列标识
第1步:创建连接工厂 第2步:创建交换 第3步:创建一个队列 第4步:创建AMQP管理员,然后声明该队列 第5步:绑定队列进行交换
同样在停止实例时,队列应该被自动删除..应该在post-construct中给出?
现在的代码如下:
CachingConnectionFactory cf = new 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();
答案 0 :(得分:1)
您使用autodeleted
个队列正确,但它们可能不是anonymous
,尽管每个实例可能是唯一的。
此处的主要功能是Fanout Exchange
。确切地说,这个Exchange能够向所有订阅(绑定)队列发送相同的消息。
您可以在RabbitMQ Tutorial中找到更多信息。