关于发布订阅:active-mq artemis springboot集群主题负载均衡(循环)问题

active-mq artemis springboot clustered topic load balancing (round robin) issue

在花费大量时间配置和尝试大量解决方案以使 Artemis 在集群模式下工作之后,就像发布-订阅(主题)中的本地模式一样。

因此,我在不同的节点上准备了 3 个消费者和一个仅在一个节点上发布消息的生产者。

我希望这 3 个消费者收到他们自己的消息副本,就像这里描述的一样!

问题是集群(核心网桥)仍然在 3 个节点之间循环消息。

My project Github Repo

spring-boot-artemis-clustered-topic

Broker Cluster Config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- Using STRICT is like setting the legacy forward-when-no-consumers
parameter to true-->
<!-- Using ON_DEMAND is like setting the legacy forward-when-no-consumers
parameter to false.-->
<cluster-connections>
     <cluster-connection name="my-cluster">
     jms</address>
        <connector-ref>netty-connector</connector-ref>
        <retry-interval>500</retry-interval>
        <use-duplicate-detection>true</use-duplicate-detection>
        <message-load-balancing>ON_DEMAND</message-load-balancing>
        <max-hops>1</max-hops>
        <discovery-group-ref discovery-group-name="my-discovery-group"/>
     </cluster-connection>

</cluster-connections>

Consumers behavior
artemis-b1-b2-b3


在您的 ConnectionFactoryClusteredConfig.pubSubFactory() 方法中,尝试在 configurer.configure(factory, connectionFactory) 之后移动 factory.setPubSubDomain(true),如下所述:https://stackoverflow.com/a/44416121/832268。