首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rabbitmq实现阻塞消息(或发布者和消费者之间的and )

使用Rabbitmq实现阻塞消息(或发布者和消费者之间的and )
EN

Stack Overflow用户
提问于 2014-02-10 22:29:06
回答 1查看 306关注 0票数 0

我在一个队列上有8个消费者,它们中的任何一个都可以拾取消息,一旦被处理,这就会影响数据库。大多数消息都可以异步运行,但在少数消息上,我们需要停止队列消费,直到该消息被其中一个消费者完全处理。在此期间,其他7个消费者不应该从队列中消费。

有没有办法在rabbitmq中实现它,而不是做一个应用程序级别的解决方案(这可能很难实现)?

EN

回答 1

Stack Overflow用户

发布于 2014-02-11 12:35:53

我不知道有什么严格意义上的RabbitMQ更改来实现这一点。但是,这里有一种方法,它不需要修改任何旧代码,除了重命名生产者要将消息放入的队列之外。它确实需要编写一个新的消费者:

  1. 使用单个消费者创建一个队列,并更新生产者以将消息发送到该队列。
  2. 该队列的使用者应该处理任何同步消息。
  3. 由于它是一个单一的消费者,所有其他消息都将阻塞在队列中,直到它完成处理。
  4. 单个使用者应该将任何异步消息转发到原始队列,以便其他八个使用者进行处理。

由于单个使用者只是转发异步消息,因此它可以快速完成,并且吞吐量应该不会有问题。

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

https://stackoverflow.com/questions/21679854

复制
相关文章

相似问题

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