【问题标题】:how to fix kafka consumer lag in 0.10.2.1 kafka如何在 0.10.2.1 kafka 中修复 kafka 消费者滞后
【发布时间】:2022-03-14 02:03:45
【问题描述】:

面临卡夫卡消费者滞后的问题。 现在我们正在重新启动 kafka 消费者以减少延迟。需要帮助进行修复。

我们有 3 个代理和 6 个消费者消费。

【问题讨论】:

  • 您应该提供更多关于您的情况的详细信息:1)您使用的是哪个版本的 Kafka? 2)。您能给我们您的消费者的相关代码吗?
  • 6 个消费者,有多少个分区?

标签: apache-kafka kafka-consumer-api


【解决方案1】:

重启消费者不太可能解决问题。我建议采取以下一系列行动:

  • 监控每个消费者在单位时间内(假设为每分钟)减少了多少延迟。您可以通过将延迟的总减少量除以 6 得出它。

  • 如果延迟减少率仍然太低,而您想增加它,则添加适当数量的消费者。您可以从上一步中估算出额外消费者的数量。

  • 确保所有消费者都在同一个消费者组中。

【讨论】:

  • 不过,您最多只能添加不超过分区数的消费者
  • 是的,没错。我假设他有 6 个分区的倍数。
【解决方案2】:
  1. 大多数代理实例的性能远高于消费者。如何增加主题的分区并增加消费者到分区。使用并发可以提高性能。
  2. 如果您在 zookeeper 上存储偏移量,它可能会成为瓶颈。如果可能,减少偏移量的提交并使用专用的 Zookeeper。最好的解决方案是在代理上存储偏移量。

【讨论】:

  • 我认为增加分区数量无助于减少现有的滞后。但是,将#partitions 作为#consumers 的倍数是一种很好的做法。
  • @Bitswazsky 是的。将分区添加到现有主题没有帮助,因为不会重新平衡数据。我的建议假设可以重新创建主题。
【解决方案3】:

当我使用一个分区的主题时,我遇到了同样的问题。在我的消费者开始后不久,延迟不断增加。 对我有用的是我使用以下命令删除了现有的 Kafka 主题:

kafka-topics.sh --zookeeper localhost:2181 --delete --topic ntift

并使用以下命令创建了具有 1 个以上分区(在本例中为 3 个)的相同主题:

kafka-topics.sh --zookeeper localhost:2181 --create --topic ntift --partitions 3 --replication-factor 3

现在,重新启动我的消费者应用程序。重启后,我没有看到 LAG(运行以下命令检查 LAG):

kafka-console-groups.sh --bootstrap-server localhost:9092 --group my-consumer-app --describe

组主题分区 CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID 应用程序-grp ntift 0 45 45 0 sarama-9c2dd / sarama 应用程序-grp ntift 1 44 44 0 sarama-9c2dd / sarama app-grp ntift 2 43 43 0 sarama-9c2dd / sarama

我还注意到消费者组(即 my-consumer-app)已启动并运行,其中有 3 个消费者。

【讨论】:

    猜你喜欢
    • 2020-08-08
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多