我有消费者处理需要大量时间和资源的工作。因此,消费者一次处理一个以上的工作是不合理的。
每个使用者都被分配到多个队列。消费者与队列之间的关系为n <-> m。
为了避免每个使用者的消息积压,我使用设置queue?consumer.prefetchSize=1 (ActiveMQ文档)。
我的问题是:
我知道一个解决方案是同步使用prefetchSize=0和轮询。
在ActiveMQ中还有其他方法来处理这个问题吗?
发布于 2022-08-02 14:10:18
如果您知道您的应用程序接收消息并花费大量时间处理它,则零预取消费者是一种明智的选择,因为它阻止另一条消息到达并闲置在使用者的预取缓冲区中,从而阻止其他任何人处理它。
https://stackoverflow.com/questions/73203264
复制相似问题