3

目标:为使用 Kafka 的特定 spring-boot 服务组织蓝/绿部署。(我对如何在 REST 或 DB 层解决 B/G 不感兴趣,所以假设这部分 B/G 已经在LB上完成)

我想要:同时在 docker swarm 集群中运行两个服务实例。但其中之一必须处于睡眠模式,即不产生和消费任何消息。

最大的问题:为我的服务设置 scale = 2 并不是什么大问题。但是在这种情况下,每个服务实例都将使用事件并处理它们。这会导致灾难。所以我需要简单透明的机制来关闭所有服务的生产者和消费者并用特定的偏移量恢复它们

我正在寻找如何实现这一目标的示例或建议。

当前的想法:将当前偏移存储在zookeeper中并编写自定义层来汇集这些配置并基于此管理消费者和生产者。但是,我相信存在一些更好和更简单的方式/框架。

4

1 回答 1

2

有几种方法:1.暂停和恢复 - https://docs.spring.io/spring-kafka/reference/html/_reference.html#pause-resume

  1. 对于每个主题分为 2 个主题:活动/非活动,并在它们之间切换

  2. 如果您使用公共云 - https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-kafka-on-aws/

于 2018-10-16T18:06:09.560 回答