【发布时间】: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