簡體   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