与 Classic 相比,ActiveMQ Artemis 性能下降

问题描述 投票:0回答:2

我正在从 ActiveMQ Classic 5.15.4 迁移到 ActiveMQ Artemis 2.17.0,并且我观察到性能下降。我对一个主题的 1 个生产者和消费该主题的不同数量的消费者进行了测试。我正在测量消息创建和消费者接收之间的时间。

测试是在 3 个节点组成的集群上完成的,所有节点都相互连接。每个代理都嵌入在 JBoss 中。我使用了 3 个节点的集群,因为这是我们当前的生产设置。我对这个设置提出质疑,因为我们的消费者和生产者很少(每次都少于 50 个),而且我们正在使用消息分组,但我需要在只有 2 个节点处于活动/备用模式的设置上进行 POC。

生产者始终瞄准同一个节点,而消费者则随机连接到其他 2 个节点。

results

我们可以看到,在所有情况下,Artemis 都比 ActiveMQ Classic 稍慢。我想知道这是否是预期的事情。

activemq-classic activemq-artemis
2个回答
2
投票

一般来说,ActiveMQ Artemis 明显比 ActiveMQ Classic 更快,因为它们之间存在显着的架构差异。简而言之,ActiveMQ Artemis 被设计为完全非阻塞,并且与 ActiveMQ Classic 相比,大规模表现非常好。

但是,在这种情况下,您“不是”大规模测试经纪商。您正在测试一个生产者和“不同数量”的消费者。这当然不是那种需要 3 个代理集群的生产用例。一个使用普通甚至最小硬件的经纪人几乎肯定就足够了。 即使您将客户端数量增加到 50 左右,我仍然认为一个活动节点就足够了。如果您使用消息分组,那么您肯定只想使用一个活动节点。有关集群消息分组的重要详细信息,请参阅

文档

同样重要的是要记住,您必须就每个经纪商的配置进行“同类比较”。这不一定是微不足道的,特别是在处理集群时。您没有分享您的代理配置,因此我无法评论它们是否在功能上等效或至少在功能上是否尽可能等效。在某些用例中,一个代理可能比另一个代理表现更好,有许多不同的特定于配置的原因。

在过去几年中,SoftwareMill 发布了针对持久、复制队列用例的流行消息代理的基准。 ActiveMQ Classic 和 Artemis 上次测试是在 2017 年。以下是

结果

。从那时起 SoftwareMill 不再测试 ActiveMQ Classic。


0
投票

此外,呼应 @Justin Bertram 的评论,即配置两个产品以实现类似的消息流特征需要具备这两个产品、消息流模式和客户端应用程序编码方面的专业知识。

最后,当谈到分布式系统和产品时——通常你会先于产品限制

达到环境限制——磁盘性能、网络性能或应用程序延迟等因素通常会限制性能结果。特别是 80% 的企业工作负载,但规模并不大。 最佳建议——了解您预期的消息流模式和消息大小。对该场景进行性能测试,直到您知道何时需要扩展。

© www.soinside.com 2019 - 2024. All rights reserved.