首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RabbitMQ (或spring cloud stream)可以独占消费消息吗?

RabbitMQ (或spring cloud stream)可以独占消费消息吗?
EN

Stack Overflow用户
提问于 2017-07-13 13:23:48
回答 2查看 601关注 0票数 1

我有一个rabbitmq队列和两个spring cloud spring消费者。我希望每个消费者都能按顺序处理消息。

我认为当consumer1发送确认时,consumer2会收到第二条消息,所以我预计message1,message2在每个消费者中都是按顺序处理的。

代码语言:javascript
运行
复制
-------------------- time pass ------------------------>

consumer1:   message1             message3
consumer2:              message2            message4

但事实并非如此。consumer1、consumer2同时接收message1、message2和process。

代码语言:javascript
运行
复制
-------------------- time pass ------------------------>

consumer1:   message1  message3
consumer2:   message2  message4

有没有办法让spring云流独占消费消息?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-13 21:25:22

亚马逊( RabbitMQ )不支持这一点;每个消费者都会收到prefetch消息。

它确实支持排他性消费者,但这意味着consumer1将获得所有消息,而consumer2只有在consumer1死亡时才会获得消息。

然而,Spring Cloud Stream目前没有提供属性来设置该选项。

票数 2
EN

Stack Overflow用户

发布于 2017-07-13 21:35:32

您将不得不以不同的方式对队列进行建模。例如通过具有恰好具有一个消费者协调器的“输入”队列。这个消费者将把消息转发到“工作”队列,在这个队列中,consumer1+2以循环的方式等待和接收工作。

然后,它们将向第三个队列上的协调器发出完成信号,这将使其恢复将单个消息中继到工作队列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45072016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档