【问题标题】:Kafka consumer needs a new Application id config after restartKafka 消费者重启后需要一个新的应用程序 ID 配置
【发布时间】:2019-10-14 16:22:22
【问题描述】:

我有一个使用主题的 Java Kafka 应用程序。有时会遇到INVALID_FETCH_SESSION_EPOCH 错误。重新启动应用程序后,它不会再次开始消费。当我更改 StreamsConfig.APPLICATION_ID_CONFIG 它开始消耗但显然不是从相同的偏移量。它不继续消费的原因是什么?它与我得到的错误有什么关系还是其他原因?

【问题讨论】:

  • 您可以发布您正在使用的消费者设置吗?
  • @sun_007 你有兴趣看什么样的配置。我只是在我的应用程序开始时设置了一些流配置,没有别的。你是说那些配置吗?

标签: apache-kafka kafka-consumer-api apache-kafka-streams


【解决方案1】:

有时此问题是由集群和客户端之间的版本不兼容引起的。确保您使用的是与您的集群版本兼容的正确客户端版本。

您可以参考兼容性矩阵here

【讨论】:

    【解决方案2】:

    当请求的 fetch session epoch 与预期不同时,会发生 InvalidFetchSessionEpochException。 如果您的获取响应长时间处于空闲状态,则轮询线程可能会发送另一个带有 epoch 的新请求,而响应带有不同的时间戳,这不会停止消费消息。您可以尝试设置参数以减小缓冲区大小,尝试减小刷新大小以减小最大记录大小以查看它是否适合您。 您也可以尝试使用升级的消费者。您可以发布您正在使用的消费者设置吗?

    zookeeper 根据组 id/应用程序 id 管理和存储的消费者偏移量详细信息,因此如果您使用相同的消费者 id,它应该从剩余的地方继续消费。而如果您更改您的消费者 ID,它将根据您的设置从最早/最新开始。 如果重启后它没有以相同的 id 开始消费,这可能是重新平衡需要很长时间的原因,或者仍在等待获取最大记录开始消费。尽量减少 max.request.siz 、 max.poll.interval.ms 和 max.poll.records

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      相关资源
      最近更新 更多