【问题标题】:Unable to stop ActiveMQ Producer?无法停止 ActiveMQ 生产者?
【发布时间】:2014-11-20 07:07:51
【问题描述】:

我无法停止 ActiveMQ Producer。

场景是: 我为内存使用和临时存储设置了较低的值。

<systemUsage>
  <systemUsage>
    <memoryUsage>
      <memoryUsage limit="1 mb" />
    </memoryUsage>
    <storeUsage>
      <storeUsage limit="100 gb" />
    </storeUsage>
    <tempUsage>
      <tempUsage limit="50 mb" />
    </tempUsage>
  </systemUsage>
</systemUsage>

生产者流控设置为false

<destinationPolicy>
  <policyMap>
    <policyEntries>
      <policyEntry topic=">" producerFlowControl="false"/>
    </policyEntries>
    <policyEntries>
      <policyEntry queue=">" producerFlowControl="false"/>
    </policyEntries>
  </policyMap>
</destinationPolicy>

现在broker已经阻塞producer,无法停止producer,为什么会这样?

经纪人日志说:

停止生产者(ID:隐藏)以防止队列泛滥://test.queue.0。有关更多信息,请参阅http://activemq.apache.org/producer-flow-control.html(阻止:151s)

【问题讨论】:

    标签: java apache jms activemq middleware


    【解决方案1】:

    您没有为队列禁用 producerFlowControl,仅对主题禁用。

    您需要添加如下内容:

    <policyEntry queue=">" producerFlowControl="false"/>
    

    日志提供的链接非常详细地解释了该行为。您的生产者不知何故淹没了代理,而代理通过阻塞一段时间来响应。

    【讨论】:

    • 我也禁用了队列,很抱歉错过了相关细节。即使经纪人阻止了生产者,如果我想阻止我的生产者,我应该能够这样做吗?
    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 2011-03-12
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    相关资源
    最近更新 更多