我们已将 ActiveMQ 消息代理配置为 Spring Boot 项目,并且还有另一个 Spring Boot 应用程序(我们称之为
service-A
),该应用程序具有配置为使用 @JmsListener
注释侦听某些主题的侦听器。这是一个 Spring Cloud 微服务应用程序。
问题:
service-A
可以运行多个实例。service-A
实例的数量如何。是否可以以集群模式或类似模式运行微服务?我还检查了 ActiveMQ 虚拟目的地,但不太确定这是否是问题的解决方案。
我们还想到了一种方法,可以从多个实例中决定谁是领导节点,但这是最后的手段,我们正在寻找一种更干净的方法。
欢迎任何有用的指点、参考。
您真正想要的是 JMS 2 中添加的 共享主题订阅。不幸的是,ActiveMQ“Classic”不支持 JMS 2。但是,ActiveMQ Artemis 支持。
ActiveMQ Artemis 是 ActiveMQ 的下一代代理。它支持与 ActiveMQ“经典”相同的大部分功能(包括对 OpenWire 客户端的完全支持)以及“经典”不支持的许多其他功能(例如 JMS 2、使用复制的无共享高可用性) 、最后值队列、环形队列、指标插件,用于与 Prometheus、重复消息检测等工具集成)。此外,ActiveMQ Artemis 构建在高性能、非阻塞核心之上,这意味着可扩展性也更好。