首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多队列上的ActiveMQ prefetchSize

多队列上的ActiveMQ prefetchSize
EN

Stack Overflow用户
提问于 2022-08-02 07:02:45
回答 1查看 78关注 0票数 0

我有消费者处理需要大量时间和资源的工作。因此,消费者一次处理一个以上的工作是不合理的。

每个使用者都被分配到多个队列。消费者与队列之间的关系为n <-> m。

为了避免每个使用者的消息积压,我使用设置queue?consumer.prefetchSize=1 (ActiveMQ文档)。

我的问题是:

  • 使用者可能会从多个队列预取消息。
  • 当它可以处理其中一条消息时,另一条消息将躺在它的预取缓冲区中。
  • 其他可以自由处理该消息的使用者无法接收消息,因为消息已经预取。

我知道一个解决方案是同步使用prefetchSize=0和轮询。

在ActiveMQ中还有其他方法来处理这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-02 14:10:18

如果您知道您的应用程序接收消息并花费大量时间处理它,则零预取消费者是一种明智的选择,因为它阻止另一条消息到达并闲置在使用者的预取缓冲区中,从而阻止其他任何人处理它。

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

https://stackoverflow.com/questions/73203264

复制
相关文章

相似问题

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