gpt4 book ai didi

activemq - 如何从消息存储耗尽中恢复?

转载 作者:行者123 更新时间:2023-12-02 05:08:15 28 4
gpt4 key购买 nike

当 activemq 代理被消息淹没或消费者失败时,一旦达到某些(可配置的)限制,它将停止接受消息。在 Broker Networks 中,这种影响可以摧毁整个集群。

我目前正在使用内存限制的默认配置并遇到以下行为:

  1. 消费者失败或变得非常缓慢(已知问题)
  2. 代理 A(消费者连接的那个)被填满并停止接受消息
  3. 所有其他代理都被填满并停止接受消息
  4. 集群基本宕机

如果消费者现在恢复在线,它将尝试重新连接到集群节点之一,但节点不会接受连接,因为这会创建无法处理的咨询消息,因为代理已经满了。

我必须如何配置内存限制,以便我的生产目的地受到限制和阻止,但代理仍然能够接受建议,以便我的消费者可以恢复?

最佳答案

您应该能够使用 producerFlowControl减缓生产者不压倒你的经纪人。也就是说,这是默认启用的,因此您可能已经在使用它了...

我会尝试这样的事情(假设一个 8GB 左右的盒子)...

  • 使用failover到处运输(经纪人/客户联系)
  • 将 JVM 堆增加到 4 GB
  • 大幅提高 systemUsage 限制(memoryUsage 3gb,storeUsage/tempUsage = 10gb)
  • 在主题和队列上启用生产者流控制
    • 将内存限制设置为 2GB 除以主题+队列的总数
    • 换句话说,这应该大大低于 memoryUsage 限制
    • 从生产者流量控制中排除咨询主题(它们可能已经)

应该限制生产者并为您的系统保留资源以运行/恢复/接受消费者连接...

关于activemq - 如何从消息存储耗尽中恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8699052/

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