如何配置Spring Amqp @RabbitListener在队列不存在时不抛出异常?

时间:2017-12-18 14:44:11

标签: amqp spring-amqp

这是我的@RabbitLister代码:

@RabbitListener(queues = device.*)

我希望这个侦听器能够侦听由我的经纪人设备创建的所有队列,其中*是设备ID,例如:device.1

目前,当我启动我的应用并且没有创建队列时,我得到了例外:

ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'device.*' in vhost '/'

我做错了什么?

1 个答案:

答案 0 :(得分:1)

AMQP / RabbitMQ不支持队列名称中的通配符/模式。

设备只应使用路由密钥向交换机发送消息;消费者对排队而不是生产者负责。

使用路由密钥topic等进行device.1交换,并使用路由密钥device.#绑定单个队列。