我是 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/