为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;一条线上的喋喋不休但却没有完全消除。例如,我可以每秒发送一条消息,但是我们已经有数千条消息。
答案 0 :(得分:1)
传输连接器具有参数“wireFormat.maxInactivityDuration”,用于确定最大不活动持续时间。要降低Keepalive的频率,请增加此值。默认值为30000(30秒)。
如果默认值为30秒,并且您每秒获得数千个Keepalive,我预计您会有数万个连接。
以下是指定此参数的示例:
<transportConnectors>
<transportConnector name="openwire"
uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000&wireFormat.maxInactivityDurationInitalDelay=10000"/>
</transportConnectors>
<transportConnectors>
<transportConnector name="openwire"
uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000&wireFormat.maxInactivityDurationInitalDelay=10000"/>
</transportConnectors>
如果连接的另一端指定的持续时间短于结束时间,则连接的两端将使用较短的持续时间。似乎没有“最小不活动持续时间”的设置,因此如果客户选择的持续时间非常短,您将不得不忍受。