【问题标题】:CURRENT-OFFSET and LAG of kafka consumer group that has no active members没有活跃成员的 kafka 消费者组的 CURRENT-OFFSET 和 LAG
【发布时间】:2020-07-06 14:41:17
【问题描述】:

这两个是怎么设置的?我在 kafka-consumer-groups.sh 中观察到的行为是,当新消息附加到某个分区时,它首先会增加其 LOG-END-OFFSET 和 LAG 列,一段时间后,CURRENT-OFFSET 列会增加并且LAG 列递减,尽管没有任何消费者实际提交偏移量,因为没有活动消费者。我是对的,这是否总是发生在没有活跃成员的消费者群体中,或者是否有可能关闭第二阶段,模拟不存在的消费者提交的抵消?这实际上令人困惑,您必须考虑消费者组中没有活动成员的信息,以便正确了解 CURRENT-OFFSET 和 LAG 列的实际含义(在这种情况下不多)。

好的,看起来消费者实际上确实在不断地连接和轮询消息并提交偏移量,但是以不稳定的方式(每次断开连接),因此 kafka-consumer-groups.sh 总是报告好像没有活动组中的成员。 这是一个以这种方式运行的 flink 作业。这可能吗?

【问题讨论】:

    标签: apache-kafka apache-flink


    【解决方案1】:

    如果 保留政策 启动并删除旧消息,则延迟可能会减少(如果发布的日志少于删除的日志),因为 CURRENT-OFFSET 会将自己定位在最早的可用日志中。

    我会检查您的主题的保留政策,因为这可能是由于删除的消息:滞后不关心被清除的消息,只关心活动的消息。

    【讨论】:

    • 谢谢,我会调查这种可能性。这可能看起来我在理解应用程序日志以及处理来自该主题的消息的其他影响方面很糟糕,但作为一名 kafka 管理员,我不应该依赖于此来了解是否发生消息消费。
    • 基本上,我想要保证当前偏移量只能通过消费者提交来增加,而不能以任何其他方式增加,例如通过清除消息。
    • 在我的情况下,主题中的消息仍然可用,并且起始偏移量不会增加(与结束和当前偏移量一样频繁)。
    • >>而不是任何其他方式
    【解决方案2】:

    这与连接和断开kafka集群无关,这将是缓慢且无效的方式。这和flink kafka consumer的实现方式有关,这里有描述:Flink Kafka Connector

    提交的偏移量只是暴露消费者的一种手段 用于监控目的的进度。

    它的基本作用是,它不以标准消费者的身份订阅主题,使用消费者组及其标准协调者和领导者机制,而是直接分配分区,并且仅向消费者组提交偏移量以用于监控目的,尽管它有继续使用这些偏移量的方法,请参阅here,但无论如何,这就是为什么这些组在 kafka 看来没有活跃成员,并且仍然提交偏移量。

    【讨论】:

      猜你喜欢
      • 2022-10-08
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2019-03-02
      • 2019-01-13
      • 2017-06-02
      • 2018-10-06
      相关资源
      最近更新 更多