ActiveMQ rebalanceClusterClients не работает с Spring Boot JMS - PullRequest
0 голосов
/ 02 июля 2019

Мы используем реализацию Spring JmsTemplate с CachingConnectionFactory. Мы настроили соединение с помощью failover-url:

failover:(ssl://172.16.0.11:61616,ssl://172.16.0.12:61616)?maxReconnectDelay=2000

На транспортном соединителе в ActiveMQ мы включили опцию «rebalanceClusterClients»:

        <transportConnector name="openwire" uri="ssl://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600" rebalanceClusterClients="true">
            <publishedAddressPolicy>
                <publishedAddressPolicy publishedHostStrategy="IPADDRESS" />  
            </publishedAddressPolicy>
        </transportConnector>

Однако все клиенты подключаются к первому брокеру в списке брокеров, а не некоторые из них перебалансируются ко второму брокеру.

Ранее мы не использовали реализацию Spring JMS, но вместо этого мы использовали библиотеки ActiveMQ напрямую. Эта реализация позволила перебалансировать подключенных клиентов.

Что-то весной мешает восстановлению баланса? Возможно, CachingConnectionFactory?

РЕДАКТИРОВАТЬ 2019-07-10

Я нашел эти два ( p1 и p2 ) сообщения на SO, где указано, что CachingConnectionFactory не очень хорошо работает с протоколом отработки отказа. Тем не менее, я думаю, что с тех пор эта проблема была решена, поскольку мы видим, что связи между брокерами перемещаются, если брокер выключен.

Чего мы не видим, так это того, что связи между брокерами сбалансированы. Мы видели такое поведение, когда все еще использовали нашу собственную реализацию JMS. Так может ли это быть что-то весной или JmsTemplate?

...