繁体   English   中英

ActiveMQ主题上的并行消息消耗

[英]Parallel message consumption on ActiveMQ topic

ActiveMQ中的持久性主题(这似乎是JMS本身的障碍)似乎表明,只有一个使用者可以在订户上处于活动状态。

也就是说,在ActiveMQ文档中:

使用唯一的JMS clientID和持久订户名称创建一个JMS持久订户MessageConsumer。 为了符合JMS,任何时候一个JMS clientID只能激活一个JMS连接,而一个clientID和订户名称只能激活一个使用者。 也就是说,给定的逻辑主题订户只能主动使用一个线程。

但是,其他排队系统(根据文档,Azure Service Bus似乎可以做到这一点)似乎很容易在单个“订阅”上允许多个线程化的“订阅者”。 在当今时代,人们会认为那是必然的。

为什么会这样呢? 这将在将来的JMS和/或ActiveMQ版本中解决吗?

PS对于这种情况,“虚拟主题”(上面引用的文档)似乎不是一个理想的解决方案,因为它似乎在后台为每个订阅者创建了一个完全独立的队列。

为什么会这样呢?

您引用的文档说明了为什么会这样-符合JMS。 需要明确的是,此处的JMS兼容版本是1.1。 JMS 2.0引入了“共享的”持久订阅者

这将在将来的JMS和/或ActiveMQ版本中解决吗?

ActiveMQ 5.x仅实现JMS 1.1,并且我不知道要增加对JMS 2.0的支持的计划。 但是, ActiveMQ Artemis (在更现代,更高性能的内核之上构建的ActiveMQ旗帜下的另一家经纪人)确实支持JMS 2.0(以及其他协议)。

就其价值而言,在具有队列的代理中实现订阅并不一定会带来性能问题。 这就是ActiveMQ Artemis所做的,并且具有非常好的性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM