队列与其对应镜像之间的排队消息数不同

Different number of enqueued messages between queue and its corresponding mirror

提问人:Sinai 提问时间:11/1/2023 最后编辑:Sinai 更新时间:11/5/2023 访问量:29

问:

我们有一个具有 2 个节点的 ActiveMQ 集群。我们希望有一个镜像队列,用于将发送到特定队列的所有消息转发到其镜像队列。以下配置用于使用代理静态发现的集群:

节点 1:

<networkConnectors>
  <networkConnector uri="static://(tcp://node2:61617)?useExponentialBackOff=false"
    name="node1-node2"
    userName="cluster"
    password="12345678"
    duplex="false"
    networkTTL="2"
    decreaseNetworkConsumerPriority="true"
    conduitSubscriptions="true"
    suppressDuplicateQueueSubscriptions="true"
  />
</networkConnectors>

节点 2:

<networkConnectors>
  <networkConnector uri="static://(tcp://node1:61617)?useExponentialBackOff=false"
    name="node2-node1"
    userName="cluster"
    password="12345678"
    duplex="false"
    networkTTL="2"
    decreaseNetworkConsumerPriority="true"
    conduitSubscriptions="true"
    suppressDuplicateQueueSubscriptions="true"
  />
</networkConnectors>

集群没有问题,一切正常。 以下是镜像的配置:

<destinationInterceptors>
    <virtualDestinationInterceptor>
        <virtualDestinations>
            <compositeQueue name="myqueue" forwardOnly="false">
                <forwardTo>
                    <queue physicalName="myqueueMirror" />
                </forwardTo>
            </compositeQueue>
        </virtualDestinations>
    </virtualDestinationInterceptor>
</destinationInterceptors>

预计两个队列中列中的消息数相同。但问题是镜像队列中排队的消息数高于原始队列!即 in 的排队消息数是 10000,但 in 的排队消息数是 10350!我还可以在镜像队列中看到重复的消息,该消息在主队列中只出现一条。 任何帮助都是值得赞赏的Messages EnqueuedmyqueueMirrormyqueuemyqueuemyqueueMirror

更新: 连接协议是 STOMP,生产者代码是用 Python 编写的

我在谷歌上搜索了这个问题,但一无所获。

队列 activemq

评论

0赞 Matt Pavlovich 11/1/2023
您使用的是什么交易模式?
0赞 Sinai 11/3/2023
如果你的意思是消息是持久的,或者不是持久的,那么测试了持久性和非持久性模式,但结果是相同的。
0赞 Matt Pavlovich 11/3/2023
对不起,我的意思是确认模式。您使用的是AUTO_ACK还是SESSION_TRANSACTED?也许是另一个生产者发送到目标队列?
0赞 Sinai 11/5/2023
使用AUTO_ACK模式。是的,主队列上有几个生产者,镜像队列上有几个使用者。如果有帮助,我还在我的问题中添加了协议和编程语言myqyeye
0赞 Matt Pavlovich 11/6/2023
我不怀疑 ActiveMQ 问题——这开始超出 SO 问题的范围,因为它需要一些故障排除。我建议从查看队列之间哪些 messageId 不匹配开始,看看是否可以追溯它们的来源。

答: 暂无答案