1

我正在使用 Spring AMQP 在 Java 中使用 RabbitMQ。我正在使用主题交换发送消息。

我想使用带有指定routingKey的自动声明队列来使用消息,而我设法实现这一点的唯一方法是使用线程,在那里我将等待交付(使用consumer.nextDelivery())。有没有其他方法可以做到这一点?

Spring AMQP 也有一个 MessageListener 接口,我只能用它来监听命名队列。有没有办法可以使用 MessageListener 来使用来自自动声明队列的消息?

谢谢!

4

1 回答 1

2

有没有办法可以使用 MessageListener 来使用来自自动声明队列的消息?

实际上这是默认的功能: http ://docs.spring.io/spring-amqp/docs/latest-ga/reference/htmlsingle/#automatic-declaration 。

并且它是 AMQP 协议的主要酷炫特性——按需自动声明 MQ 对象。该规则适用于队列以及它们之间的交换和绑定。

因此,对您而言,只需指定队列与该主题交换的绑定并从<listener-container>配置中引用队列名称就足够了。

当然,在您的应用程序启动时,所有 AMQP 对象都将通过RabbitAdmin组件填充到 RabbitMQ 代理,如果它们还没有出现在代理上的话。

于 2014-07-08T09:12:16.527 回答