RabbitMQ:Topic exchange是否需要每个主题的使用者队列?

RabbitMQ:Topic exchange是否需要每个主题的使用者队列?,rabbitmq,Rabbitmq,我试图更好地理解如何在pub-sub模型中与多个消费者进行主题交流。假设我有 名为Log的单个持久队列 发布者主题交换,将所有日志消息(log.#)路由到此队列“log” 我可以让多个消费者根据路由密钥从上述发布者队列“log”读取日志消息。e、 例如,消费者C1-仅获取Log.x消息,C2获取Log.y消息。。等等 简言之,是否可以让多个使用者从同一队列中读取信息,但只获取过滤后的消息,或者每个使用者都必须有自己的基于主题的队列?如果答案是后者,则每个使用者都有自己的基于不同主题的队列,那

我试图更好地理解如何在pub-sub模型中与多个消费者进行主题交流。假设我有

  • 名为Log的单个持久队列
  • 发布者主题交换,将所有日志消息(log.#)路由到此队列“log”
我可以让多个消费者根据路由密钥从上述发布者队列“log”读取日志消息。e、 例如,消费者C1-仅获取Log.x消息,C2获取Log.y消息。。等等


简言之,是否可以让多个使用者从同一队列中读取信息,但只获取过滤后的消息,或者每个使用者都必须有自己的基于主题的队列?如果答案是后者,则每个使用者都有自己的基于不同主题的队列,那么publisher如何独立于使用者队列进行发送。谢谢

不能让消费者C1和C2位于同一队列中,并且每个消费者都根据路由密钥获取不同的消息子集。相反,您需要的是一个基于路由密钥发布到2个不同队列的exchange。然后C1和C2各自从各自的队列中读取数据。

感谢您的确认。因此,主题发布者将无法发布消息,除非有绑定到发布者exchange的订阅者队列,因为没有队列,发布者exchange只会删除消息?正确。如果创建的exchange没有附加任何队列,则发送到exchange的任何内容都将被丢弃。