首页 > 解决方案 > RabbitMQ 同时发布和消费同一个队列

问题描述

我有一个 RabbitMQ 消息队列,我想从 Web 服务调用ServiceA将多条消息发布到队列。同时,还有一个名为的 Web 服务ServiceB的 Web 服务,用于在 10 秒的时间间隔内消费来自 RabbitMQ 同一队列的消息。这个用例是否可以通过 RabbitMQ 队列的实现来实现?

RabbitMQ 是否支持发布者和消费者同时(同时)访问同一个队列?

标签: rabbitmqmessage-queue

解决方案


ServiceB 用于在 10 秒的时间间隔内消费来自 RabbitMQ 同一队列的消息。

RabbitMQ 实现这个有点奇怪。在 RabbitMQ 中,消费者通道将立即接收消息,除非其 unAck 消息达到预取限制。我建议在 RabbitMQ 消费者和ServiceB之间添加一个缓冲区缓存(每 10 秒刷新一次)

RabbitMQ 是否支持发布者和消费者同时(同时)访问同一个队列?

在 RabbitMQ 中,发布者不能直接访问队列,只能发布消息到 Exchange,RabbitMQ Daemon 将通过 Exchange 绑定规则路由消息。换句话说,发布者和消费者可以同时独立工作。


推荐阅读