jms - RabbitMq : Create queue dynamically

标签 jms rabbitmq message-queue rabbitmq-exchange

我有一个场景,我想使用特定的路由 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/

相关文章:

wcf - 如何使用可靠的异步消息可靠地解析和存储数据?

jms - WAS Server 和 websphere MQ 为什么需要队列?

php - 异常Eventlistener无法捕获RabbitMQ使用者的异常

apache-kafka - 消费组的数量对Kafka性能有影响吗

java - 如何在 Wildfly 10 上查找远程 jms 队列

spring - 测试 JMS 和 Spring 集成

java - 非事务 session 中抛出的 JMS 事务异常

Django celery : Execute only one instance of a long-running process

php - 如何修复 PHP amqp?

web-services - 消息队列与 Web 服务?