【问题标题】:how to automatically delete unused kafka consumers如何自动删除未使用的kafka消费者
【发布时间】:2019-07-16 09:31:08
【问题描述】:

我将 Kafka 用于消息传递应用程序。对于这个应用程序,有一个生产者将消息放入一个主题,消费者注册到这个主题,并消费这些消息。这些消费者是 Dockerized 应用程序。出于自动扩缩的目的,每个消费者在创建时都会注册为具有唯一 ID 的消费者。

假设以下场景:

Consumer1 被创建为 docker 容器,并将自己注册为 ID 为 Consumer1 的消费者

Consumer2 被创建为 docker 容器,并将自己注册为 ID 为 Consumer2 的消费者

现在,无论出于何种原因,Consumer1 失败,并被Consumer3 取代,Consumer3 将自己注册为 kafka 的消费者,ID 为 Consumer3

问题是,Consumer1 不再使用。从长远来看,会有多个未使用的消费者。

有没有办法动态自动知道哪些消费者不再使用并删除它们?

【问题讨论】:

    标签: apache-kafka kafka-consumer-api


    【解决方案1】:

    如果consumer1 和consumer3 属于同一个consumer group,consumer3 将从consumer1 停止的地方开始读取消息。这是因为 Kafka 维护特定于消费者组的偏移量。因此,如果具有相同消费者组的消费者中的一个失败,其他消费者将使用偏移量并避免重新处理数据。

    Kafka 代理不会像您在问题中假设的那样在任何地方维护失败的消费者日志。

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多