【问题标题】:Spring boot application stop serving traffic while Kafka consumer rebalancingSpring Boot 应用程序在 Kafka 消费者重新平衡时停止服务流量
【发布时间】:2021-03-12 05:09:39
【问题描述】:

我正在使用 Kafka 在 k8s 集群中运行 Spring Boot 应用程序。 在滚动更新或扩展我的服务期间,其中一些已重新平衡,这是可以的,因为正在添加或删除消费者,但这会导致重新平衡的服务停止提供流量。

我正在使用

  • Spring Boot 2.1.1.RELEASE
  • Spring 集成 Kafka 3.1.0.RELEASE
  • Spring Kafka 2.2.7.RELEASE

我有 3 个主题,每个主题有 2000 个分区,服务数量为 30-50,具体取决于系统负载。 并为每个主题使用消费者组。

首先,我认为新服务会发出信号表明它们已准备就绪(通过执行器就绪探测),这会导致它们在实际准备好之前接受流量,但事实并非如此,因为现有服务在重新平衡时也会停止服务流量。

什么是扩展或滚动更新的最佳做法,这将触发可能的最小重新平衡

【问题讨论】:

    标签: spring-boot kubernetes apache-kafka spring-kafka spring-cloud-stream


    【解决方案1】:

    Boot 2.1 生命周期结束。上个月的最后一个版本是 2.1.18。 spring-kafka 当前的 2.2.x 版本是 2.2.14。

    如果您可以升级到(至少)Boot 2.2.11(spring-kafka 2.4.11 - Boot 默认引入 2.3.x)(并且代理 >= 2.3),您可以考虑配置增量协作重新平衡。

    当前版本是 Boot 2.4.0 和 spring-kafka 2.6.3。

    https://www.confluent.io/blog/incremental-cooperative-rebalancing-in-kafka/

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 2017-06-19
      • 2017-04-20
      • 2018-10-03
      相关资源
      最近更新 更多