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

RabbitMQ队列在一段时间内堆满了消息,即使有与这些队列相关联的监听器

司马德水
2023-03-14
  1. 涉及2个虚拟机。
  2. 这两个VM在循环中每7秒发送25MB大小的消息。
  3. 设置了用于在机器之间传输消息的铲。
  4. 这两台机器都有侦听器来使用另一台机器发送的消息。
  5. 监听器只需使用消息并出来。侦听器端不涉及任何处理。
  6. rabbitmQ代理已启用SSL。
  7. 我正在使用Spring RabbitMQ.
  8. 我正在使用SimpleMessageListenerContainer进行监听。

我的问题:

>

  • 在一段时间内,例如在1.5天的连续消息交换之后,队列中会积累消息。

    侦听器已启动,但在一段时间内,消耗率会降低,消息会堆积在队列中。

    队列中积累的一些消息处于unacked状态。

      null
      null
  • 共有1个答案

    邵崇凛
    2023-03-14

    这里的人很难调试您的应用程序。

    消费率在一段时间内递减

    这最像是应用程序的症状,而不是消息传递系统或框架的症状。我会从那里开始。

     类似资料:
    • 在队列选项卡的rabbitMQ web界面上,我看到了“概述”面板,我在其中找到了以下内容: 排队消息: 准备好了 未确认 总数 我猜“总数”是多少。但什么是“准备就绪”和“未确认”?“准备好了”——传递给消费者的信息?“未确认”-? 消息费率: 发表 交付 重新交付 承认 这些信息是什么?尤其是“重新交付”和“确认”?这是什么意思?

    • 我发送消息从JavaSpring Boot应用程序到消费者是Python应用程序。 除了输入命令rabbitmqctl list\u queues时,一切正常,它显示视频队列0,这意味着队列中没有消息。 消费者正在接收消息并执行一些长过程;所以如果我连续发送多条消息,应该会有一些消息在队列中等待。我说得对吗? 制片人: 消费者 在哪里可以看到我声明的队列上的消息?因为虽然我知道队列中有消息,但使用

    • 我希望能够在Rabbit中移动队列之间的消息(手动)。 例如: 我对rabbitmq和amqp还是个新手,但一直找不到关于如何做到这一点的文档(如果可能的话)。 多谢了。

    • 我将与一起使用中的这个库。所有使用者均为,所有队列均为(4小时)。 我有很多队列没有任何挂起的ack,但仍然保存着数百条消息。此外,队列不会在应该过期时过期,这将在几天后产生性能问题。我没有找到任何理由来解释为什么消息在ack处理之后仍然在队列中。 谢谢 管理工具中的一些快照:

    • 我已经建立了一个rabbit集群,每当数据库中发生变化时,我都会将消息发布到fanout交换中。 我为使用这些更新的一些微服务绑定了专用队列,我最初还为外部客户端设置了专用队列,以便他们可以将其与自己的rabbit基础架构联合起来,并使用每条消息的副本。 现在,我想知道,允许exchange联合而不是为每个新的外部消费者创建新的专用队列是否是更好的方法,因为将有越来越多的用户加入。 有哪些利弊?

    • 我正在尝试理解线程、处理程序、循环器。我看过视频,其中家伙说以下每个Android线程都与Looper(消息队列)相关联。所以这意味着当我创建Thread类实例时,它隐含地创建了它自己的连接到此线程的looper?还是这是错误的?Handler连接到创建它的线程,如果处理程序将发布消息的每个线程中没有looper?另一个问题是关于HandlerThread的。使用这个类的目的是什么,利弊是什么。希