繁体   English   中英

ActiveMQ 待处理消息

[英]ActiveMQ Pending messages

我有一个与 ActiveMQ 类似的问题: http : //activemq.2283324.n4.nabble.com/Messages-stuck-in-pending-td4617979.html并且已经尝试了此处发布的解决方案。

有些消息似乎卡在队列中,可以在那里停留数天而不会被消耗。 我有足够多的消费者,大部分时间都是免费的,所以这不是消费者“饱和”的问题。

在 ActiveMQ 重新启​​动后,一些挂起的消息会立即被消耗。 就在刚才,我有 25 个免费消费者可用于队列(它们在管理面板中可见),其中有 7 个“卡住”消息。 其中四个立即被消耗,但其他三个仍然卡住。 另一个奇怪的事情是 - 新消息不断进入队列并立即被消耗,而 3 个旧消息仍然卡住。

在消费者方面,我在 spring 中的配置如下所示:

<jms:listener-container concurrency="${activemq.concurrent.consumers}" prefetch="1">
    <jms:listener destination="queue.request" response-destination="queue.response" ref="requestConsumer" method="onRequest"/>
</jms:listener-container>

<bean id="prefetchPolicy" class="org.apache.activemq.ActiveMQPrefetchPolicy">
        <property name="queuePrefetch" value="1" />
</bean>

<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${activemq.broker.url}?initialReconnectDelay=100&amp;maxReconnectDelay=10000&amp;startupMaxReconnectAttempts=3"/>
    <property name="prefetchPolicy" ref="prefetchPolicy"/>
</bean>

“卡住”的消息可能被认为是“正在传递”,重新启动代理将关闭连接,并且由于消息尚未确认,代理将它们视为未传递并将再次传递它们。

导致这种情况的可能有几个问题,最常见的问题是事务/确认配置中的问题,消费者端的错误/确认管理错误(消息被消费但从未确认)或消费者卡在无休止的操作中(对于例如对不响应且没有超时处理的第三方资源的阻塞调用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM