RabbitMQ只有Queue,如果多个消费者绑定同一个queue,那么一条消息,只能被其中一个消费者取走(轮询)。本质上,RabbitMq的消费者的消息确认机制,就注定不可能让多个消费者同时去消费同一个队列中的同一条消息,只能轮询的方式去消费。

我感觉我们的目的是想用rabbitmq 实现发布订阅的模式,其实不用纠结于多个消费者怎么取消费同一个队列里面的消息,我的理解是,

1、消息生产者 关心的是 1 消息 2 路由key 3 交换机 而队列与交换机的绑定是消费者应该关心的事。

2、基于这个,作为生产者,想发布一个消息,只需要提供消息类型 ,路由key规则,对应交换机。

3、至于谁想订阅这个消息作为生产者可以不用管,消息订阅者按照生产者提供的协议去创建一个队列对接就是。

实现方式采用topic交换机-通配符路由

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐