我有一个场景,我想使用特定的路由 key 将一些消息发布到rabbitmq-exchange,例如。美国广播公司
问题是可能已经有任何队列已经与路由键“abc”绑定(bind)了,或者可能没有。这种情况的行为似乎是丢弃该消息,或者如果配置了死信交换,它将被路由到死信交换。
我想动态创建一个与路由键同名的队列,即“abc”,如果该路由键不存在队列,而不是将其丢弃或发送到 DLX。
有没有已知的方法可以做到这一点?
最佳答案
根据我的研究,我不知道配置服务器端以动态创建队列的方法。但是,您可以在客户端执行此操作以达到相同的效果:
实现 ReturnListener
在 channel 上收听无法路由的消息。查看此页面上的“处理不可路由的消息”部分以获取示例:
https://www.rabbitmq.com/api-guide.html
然后,您可以使用 routingKey
使用 queueDeclare()
传递给处理程序以创建具有相同名称的队列和 queueBind()
方法(有关示例,请参见同一链接上的“使用交换和队列”)。
关于jms - RabbitMq : Create queue dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560879/