如何降低ActiveMQ KeepAlive消息的频率

时间:2018-02-12 23:47:14

标签: activemq

为ActiveMQ配置了HTTP传输。但是,我们注意到有成千上万的KeepAlive消息。我知道KeepAlive消息用于控制" dead"不活动监视器检测并清除连接:http://activemq.apache.org/activemq-inactivitymonitor.html

<org.apache.activemq.command.KeepAliveInfo>
  <commandId>0</commandId>
  <responseRequired>false</responseRequired>
</org.apache.activemq.command.KeepAliveInfo>

从文档中可以看出Inactivity Monitor可以关闭,但是我想弄清楚是否有设置为&#34;减少&#34;一条线上的喋喋不休但却没有完全消除。例如,我可以每秒发送一条消息,但是我们已经有数千条消息。

1 个答案:

答案 0 :(得分:1)

传输连接器具有参数“wireFormat.maxInactivityDuration”,用于确定最大不活动持续时间。要降低Keepalive的频率,请增加此值。默认值为30000(30秒)。

如果默认值为30秒,并且您每秒获得数千个Keepalive,我预计您会有数万个连接。

以下是指定此参数的示例:

<transportConnectors>
    <transportConnector name="openwire"
        uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000&amp;wireFormat.maxInactivityDurationInitalDelay=10000"/>
</transportConnectors>

<transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000&amp;wireFormat.maxInactivityDurationInitalDelay=10000"/> </transportConnectors>

如果连接的另一端指定的持续时间短于结束时间,则连接的两端将使用较短的持续时间。似乎没有“最小不活动持续时间”的设置,因此如果客户选择的持续时间非常短,您将不得不忍受。