问题描述
我正在处理一个遗留应用程序,该应用程序已迁移到现代JBoss版本(Wildfly 20),并且所有功能都得到了维护。该应用程序以集群模式运行,节点之间(集群中只有2个节点)之间具有消息队列复制。
但是该应用程序处理大量消息(超过一百万条消息),而性能却不能使我们的客户满意。因此,我想知道消息复制是否会带来开销并影响应用程序的整体性能吗?我是否应该将消息代理移至外部服务,例如集中式ActiveMQ代理?
解决方法
ActiveMQ Artemis(即WildFly 20中附带的JMS代理实现)中消息复制的开销通常不大。代理的内部体系结构是非阻塞的,因此将消息持久保存到磁盘并在网络上复制消息等任务实际上是并行完成的。除非两个代理之间的网络连接不良,否则我不希望复制会增加大量开销。