首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArtemisMQ 2.x上的消息重分发不起作用

ArtemisMQ 2.x上的消息重分发不起作用
EN

Stack Overflow用户
提问于 2017-08-16 01:39:16
回答 3查看 803关注 0票数 1

我想在具有静态主机的2节点群集上启用消息重新分发。但它似乎不起作用。

1)我有10个生产者写入节点1上的队列"MyTestQueue“(但没有消费者)。

2)我在节点2上有一个消费者(但没有生产者),它消费来自节点2的消息。

我期望节点1将消息重新分发到消费者所在的节点2,但它没有。节点1上的消息计数仍然等于发送到节点1的消息数量。

我的broker.xml中有以下配置,它将forward-when-no-consumers设置为false。我还将redistribution-delay的值设置为零。

代码语言:javascript
复制
<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>

如何才能使消息重分发起作用?

EN

回答 3

Stack Overflow用户

发布于 2017-08-16 20:37:31

这可能与已知的issue有关。有一种情况是,如果消息不包含应用程序属性字段,则代理无法对消息进行负载平衡。

你能试一下吗?

票数 2
EN

Stack Overflow用户

发布于 2017-09-02 03:17:51

有几件事。

  • 您使用的是哪个版本的Artemis?您是否尝试过使用2.2.0版重现此内容?
  • 您使用的是哪种客户端(例如,JMS、AMQP、STOMP等)?
  • 您是否有可重现的测试用例(例如,Artemis附带的某个示例的修改版本)?
  • configuration元素在Artemis中无效(尽管它在旧版本的HornetQ中)。
票数 1
EN

Stack Overflow用户

发布于 2018-02-01 05:46:18

从群集连接配置中删除<address>jms</address> -每个群集连接仅适用于与指定地址匹配的地址。确保您使用的是兼容客户端,因为当负载平衡到具有匹配使用者的节点时,从1.x客户端到2.x集群的消息会丢失。

Here's official, working example of ActiveMQ Artemis configuration with symmetric cluster, on demand load balancing and message redistribution

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45698399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档