gpt4 book ai didi

spring - 一段时间后 activemq 队列上没有新的消费者

转载 作者:行者123 更新时间:2023-12-04 21:56:49 30 4
gpt4 key购买 nike

自一个月以来,我们在 activemq 和 spring 方面反复出现问题。一段时间后(一天到一周之间),我们没有更多消费者,也没有新消费者开始,队列开始填满。

此设置运行了一年多,没有任何问题,而且据我们所知,没有任何相关更改。

我们使用的另一个队列也开始显示相同的行为,但频率较低。

来自 activemq webconsole(你可以看到很多待处理的消息,但没有消费者)

Name ↑ Number Of Pending Messages Number Of Consumers Messages Enqueued Messages Dequeued Views Operations
queue.readresult 19595 0 40747 76651 Browse Active Consumers

我们的 bundle-context.xml 的内容

<!-- JMS -->
<bean id="jmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
<property name="maxConnections" value="5" />
<property name="maximumActive" value="5" />

<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
</property>
</bean>


<bean id="ResultMessageConverter" class="com.bla.ResultMessageConverter" />

<jms:listener-container connection-factory="jmsConnectionFactory" destination-resolver="jmsDestinationResolver"
concurrency="2" prefetch="10" acknowledge="auto" cache="none" message-converter="ResultMessageConverter">
<jms:listener destination="queue.readresult" ref="ReaderRequestManager" method="handleReaderResult" />
</jms:listener-container>

在任何日志中都没有异常。有谁知道一段时间后无法启动新消费者的原因。

谢谢

最佳答案

我之前遇到过“消费者停止消费”的问题,但没有看到消费者停止存在。您可能用完了池中的内存和/或连接。您是否必须重新启动 ActiveMQ 来解决问题或只是您的应用程序?

这里有一些建议:

  1. 将队列预取设置为 0
  2. 在连接字符串上添加“useKeepAlive=false”
  3. 增加队列的内存限制

关于spring - 一段时间后 activemq 队列上没有新的消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069188/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com