我想使用靜態主機在我的雙節點羣集上啓用消息重新分配。但它似乎並不奏效。ArtemisMQ 2.x上的消息重新分配不起作用
1)我有10個生產者寫入隊列「MyTestQueue」節點1(但沒有消費者)。
2)我在節點2(但沒有生產者)上有1個消費者使用來自節點2的消息。
我期望節點1將消息重新分配給消費者存在的節點2,但它不會。節點1上的消息數量仍然等於發送到節點1的消息數量。
我在broker.xml中擁有以下配置,它將forward-when-no-consumers
設置爲false。 我也設置redistribution-delay
值爲零。
<jms xmlns="urn:activemq:jms">
<queue name="MyTestQueue"/>
</jms>
...
<cluster-connections>
<cluster-connection name="my-test-cluster">
<address>jms</address>
<connector-ref>server0-connector</connector-ref>
<retry-interval>500</retry-interval>
<use-duplicate-detection>true</use-duplicate-detection>
<forward-when-no-consumers>false</forward-when-no-consumers>
<message-load-balancing>ON_DEMAND</message-load-balancing>
<max-hops>1</max-hops>
<confirmation-window-size>1024</confirmation-window-size>
<static-connectors>
<connector-ref>server1-connector</connector-ref>
</static-connectors>
</cluster-connection>
</cluster-connections>
...
<address-settings>
<address-setting match="#">
<redelivery-delay>5000</redelivery-delay>
<redelivery-delay-multiplier>3</redelivery-delay-multiplier>
<max-redelivery-delay>10000</max-redelivery-delay>
<max-delivery-attempts>10</max-delivery-attempts>
<max-size-bytes>104857600</max-size-bytes>
<page-size-bytes>10485760</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
<redistribution-delay>0</redistribution-delay>
</address-setting>
</address-settings>
如何讓消息重新分配工作?
謝謝!你能否指定我需要設置哪種應用程序屬性以及在哪裏?在客戶端?在broker.xml中? – Rox
@Rox在發送的消息上設置一些應用程序屬性。任何事情都應該有效。不要在沒有任何應用程序屬性的情況下完全發送消息。 – user7610
@ user7610:哦,我明白了!我將嘗試在消息上設置一個字符串屬性並查看它是否有效。結果會回到這裏。 – Rox