如何防止同一微服务的多个实例从 ActiveMQ Artemis 主题读取同一消息

How to Prevent Multiple Instances of the Same Microservice Reading the Same Message from an ActiveMQ Artemis Topic

这个问题与那个 相似,但我不确定如何解决这个问题

我有一个 ActiveMQ Artemis Broker v 2.16.0 和 Spring 带有 spring-jms 5.3.3 的微服务项目。我有两个订阅主题的微服务 A 和 B。由于工作量大,我有两个微服务实例 A 运行。如何配置微服务 A 的两个实例连接到主题但不使用相同的消息?

一般来说,每个 JMS 主题订阅者都会收到发送到该主题的每条消息。但是,JMS 2 引入了“共享”订阅的概念,其中 2 个订阅者共享同一个订阅,因此只有其中一个订阅者会收到任何特定消息。您需要在配置 JMS 侦听器容器工厂时调用 setSubscriptionShared(true) 才能启用此行为。