java - 使用具有特定路由键的消息?

标签 java rabbitmq jms

我是 Rabbit MQ 的新手。阅读 Rabbit MQ tutorial 的几个

在提到的链接中,我的问题是关于下面的ReceiveLogs

     channel.basicConsume(queueName, true, consumer)

由于单个队列可以保存使用不同routingKey路由的消息。假设消费者是否想使用特定的路由键来消费消息。 是否可以 ?在这种情况下,我是否需要仅在特定队列上使用单个路由键发布消息?

我在 Channel API 下没有看到任何方法

最佳答案

在 RabbitMQ 中,生产者发布到 an exchange不是queue - 这将生产者与消费者脱钩。 是的,如上所述 in the official article您可以使用不同的 routing key 路由消息在同一个队列中,您只需要创建 more than one binding for that queue为了实现这一点。

现在直接回答您的问题:如果您想每个队列有一个路由键,您需要执行以下操作:

对于每个 routing key您希望消费者听到:

  • 创建队列
  • 调用 channel.queueBind(queueName, EXCHANGE_NAME, <your_routing_key>);该队列仅一次。

关于java - 使用具有特定路由键的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47498889/

相关文章:

python - Flask + RabbitMQ + SocketIO - 转发消息

rest - ServiceStack Web 服务的存储转发故障转移解决方案

java - JMS可以在Java Swing App中使用吗

java - Session.AUTO_ACKNOWLEDGE 上的 JMS Message.acknowledge()

java - 没有回复监听器的 Spring Integration JMS 网关

java - 不幸的是,我的应用程序已在 Android 模拟器中停止

java - Spring Boot 为自定义错误页面返回 200 状态代码

RabbitMQ 点对点或发布-订阅

java - 创建类的实例并初始化其所有字段

java - 正则表达式密码 - 小写字母后面不能跟小写字母,反之亦然