当前位置: 首页 > 知识库问答 >
问题:

在没有慢速消费者的情况下,什么会导致大量挂起的消息?

佟涵畅
2023-03-14

我将ActiveMQ与Apache Camel一起使用。现在我遇到了这个问题,在ActiveMQ中有大量挂起的消息。消息处于挂起状态,出列过程非常缓慢。

我的理解正确吗?通常情况下,为了有那么多待处理的消息,每个消费者的调度队列的大小应该已经接近默认的预取限制(即1000)?但每个消费者只有20-80美元?

我对ActiveMq了解不多。那么我应该从哪里了解如何解决这个问题呢?

连接配置01是活动的,02处于待机模式

failover:(tcp://mq01:61616,tcp://mq02:61616)

连接工厂第一个用于大多数队列,第二个用于具有大量负载的任务。

<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
    <property name="connectionFactory" ref="my-connectionFactory" />
    <property name="idleTimeout" value="0"/>
    <property name="maxConnections" value="5" />
</bean>

<bean id="consumerPooledConnectionFactory"
      class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop">
    <property name="maxConnections" value="2" />
    <property name="connectionFactory" ref="my-connectionFactory" />
</bean>

共有1个答案

管杜吟
2023-03-14

我想更新一下,我发现,在我的例子中,问题是因为我有ActiveMQ的连接池,它在ActiveMQ生产者和消费者之间共享,这在某种程度上造成了对池中可用连接的竞争。

因此,我们学到的教训是,始终分离生产者和消费者之间的连接池。

 类似资料:
  • 我有一个用例,在这个用例中,我有3个Kafka消费者向一个主题写作,每个消费者中的消息都需要按顺序处理。在这种情况下,如果某个消费者中存在延迟,则需要更早处理的消息将被丢弃(写入条件)。那么,有没有一种方法可以维持这些消息的顺序呢。

  • 问题内容: 我有一个使用SSL传输的activeMQ代理。我大约有10位使用代理的消费者。我正在使用骆驼配置路线。 即使我重新启动使用者,它总是挂断并且不会使用新消息,即使队列中有待处理的消息也是如此。 我开始尝试一次遍历我的消费者,试图找出问题所在,以找出问题的根源。我终于找到了一个消费者,我可以重新解决这个问题。一段时间后它将挂起,但是,如果我进入活动的MQ管理控制台并尝试查看队列中的消息,它

  • 本文向大家介绍什么情况会导致 kafka 运行变慢?相关面试题,主要包含被问及什么情况会导致 kafka 运行变慢?时的应答技巧和注意事项,需要的朋友参考一下 cpu 性能瓶颈 磁盘读写瓶颈 网络瓶颈

  • 我有一个生产者和一个消费者。消费者的多个实例正在运行。当生产者发布消息时,我的意图是通过所有实例消费该消息。所以,我使用的是直接交换。生产者将带有主题的消息发布到直接交换。消费者正在通过独占队列收听该主题。当消费者启动并且生产者发布消息时,此过程运行良好。但是当消费者关闭并且生产者发布消息时,消费者在启动时不会消费此消息。 我在谷歌上搜索了这个问题。建议使用命名队列。但是,如果使用命名队列,则消息

  • 本文向大家介绍消费者和消费者组有什么关系?相关面试题,主要包含被问及消费者和消费者组有什么关系?时的应答技巧和注意事项,需要的朋友参考一下 每个消费者从属于消费组。具体关系如下:

  • 我有一种在shell中执行此任务的方法:如何使kafka消费者从上次消耗的偏移量读取,而不是从开始读取 但是,我愿意在Python中这样做,使用 我找不到任何关于这种情况的api。 http://kafka-python.readthedocs.io/en/latest/apidoc/KafkaConsumer.html