gpt4 book ai didi

java - 检测ActiveMQ流控

转载 作者:行者123 更新时间:2023-12-01 05:39:38 25 4
gpt4 key购买 nike

我有一个生产系统,它使用 ActiveMQ (5.3.2) 将消息从服​​务器 A 发送到服务器 B。几周前,系统莫名其妙地开始花费 10 秒以上的时间来发送消息。重启生产者后,系统工作正常。

经过调查,我很确定这是由于生产者流量控制造成的。 (我有一个相当标准的 activemq 设置)。发生这种情况的前一天(由于其他原因)我的消费者软件运行不稳定,甚至有一段时间停止接受连接。所以我猜这触发了这个。 (令我困惑的是,一天后请求仍然受到限制)。

问题 - 我如何确认请求已被限制。我对服务器进行了堆转储——内存中是否有我可以查找的数据?

编辑:我发现以下内容:对于内存中的三个 WireFormatNegotiator 实例之一,WireFormatNegotiator.tcpNoDelayEnabled=false。我正在试图找出是什么造成了这一点。

第二(也是更重要的),有没有办法可以使用 JMX 来判断消息是否受到限制?我想设置 Nagios 警报,让我知道将来是否会发生这种情况。我应该使用 JMX 检查什么属性?

最佳答案

你可以 configure your producer client抛出 javax.jms.ResourceAllocationException 异常,然后可以检测/记录这些异常,等等。只需设置以下其中一项...

<systemUsage>
<systemUsage sendFailIfNoSpaceAfterTimeout="3000">
...OR...
<systemUsage sendFailIfNoSpace="true">

关于java - 检测ActiveMQ流控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com