如何改善大队列的消息处理?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

我正在尝试使用Spring JMS和ActiveMQ来处理大量消息。问题的上下文如下:每个客户都会生成一组添加到队列中的消息。消息将以客户ID作为参数添加到队列中。

在一种情况下,客户A可以向队列添加10k消息,而客户B仅向同一队列添加100消息。我的问题是客户B需要等到所有10k消息都完成处理才能处理100条消息。

有没有办法同时处理客户A的一些消息和客户B的一些消息?我知道可以选择为来自客户B的消息设置更高的优先级,但是当有更多的客户时,这并不能解决问题。拥有更多消息的客户将填满队列,而其他人则必须等待。

如果您能提供一些帮助或建议,我将不胜感激。

提问于
用户回答回答于

队列的基本语义是先进先出(即FIFO)。没有真正的方法来逃避这一点。我建议您重新设计应用程序以使用多个队列 - 每个“类型”的消息或您拥有的独立应用程序。

扫码关注云+社区

领取腾讯云代金券