RabbitMq同一队列多个消费者问题

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

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

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

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

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

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

你可能感兴趣的:(java-rabbitmq,rabbitmq,java)