如何降低ActiveMQ KeepAlive消息的频率

如何降低ActiveMQ KeepAlive消息的频率,activemq,Activemq,我们为ActiveMQ配置了HTTP传输。然而,我们注意到有成千上万的保留消息。我知道KeepAlive消息用于控制不活动监视器如何检测和清除“死”连接: 0 假的 从文档中可以看出,可以关闭不活动监视器,但我想知道的是,是否有一个设置可以“减少”线路上的聊天量,但不能完全消除。例如,我同意每秒发送一条消息,但我们将收到数千条消息。传输连接器有一个参数“wireFormat.maxInactivityDuration”,用于确定最大不活动持续时间。若要减少保留的频率,请增加此值。默认值为30

我们为ActiveMQ配置了HTTP传输。然而,我们注意到有成千上万的保留消息。我知道KeepAlive消息用于控制不活动监视器如何检测和清除“死”连接:


0
假的

从文档中可以看出,可以关闭不活动监视器,但我想知道的是,是否有一个设置可以“减少”线路上的聊天量,但不能完全消除。例如,我同意每秒发送一条消息,但我们将收到数千条消息。

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

如果默认值为30秒,并且每秒有数千个keepalives,那么我希望您有成千上万个连接

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


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

<org.apache.activemq.command.KeepAliveInfo>
  <commandId>0</commandId>
  <responseRequired>false</responseRequired>
</org.apache.activemq.command.KeepAliveInfo>
<transportConnectors>
    <transportConnector name="openwire"
        uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=30000&amp;wireFormat.maxInactivityDurationInitalDelay=10000"/>
</transportConnectors>