Apache kafka docker swarm中使用Kafka的服务的蓝色/绿色部署
目标:是为使用Kafka的特定spring boot服务组织蓝色/绿色部署(我对如何在REST或DB层上解决B/G不感兴趣,所以假设B/G的这一部分已经在LB上完成) 我希望:在docker swarm集群中同时运行两个服务实例。但其中一个必须处于睡眠模式,即不生成和使用任何消息 最大的问题:为我的服务设置scale=2并不是什么大问题。但是,在这种情况下,每个服务实例都将使用事件并对其进行处理。这将导致灾难。所以我需要一个简单而透明的机制来关闭所有服务的生产者和消费者,并用特定的补偿恢复它们 我在寻找一个例子或建议如何做到这一点Apache kafka docker swarm中使用Kafka的服务的蓝色/绿色部署,apache-kafka,blue-green-deployment,Apache Kafka,Blue Green Deployment,目标:是为使用Kafka的特定spring boot服务组织蓝色/绿色部署(我对如何在REST或DB层上解决B/G不感兴趣,所以假设B/G的这一部分已经在LB上完成) 我希望:在docker swarm集群中同时运行两个服务实例。但其中一个必须处于睡眠模式,即不生成和使用任何消息 最大的问题:为我的服务设置scale=2并不是什么大问题。但是,在这种情况下,每个服务实例都将使用事件并对其进行处理。这将导致灾难。所以我需要一个简单而透明的机制来关闭所有服务的生产者和消费者,并用特定的补偿恢复它们
当前想法:是将当前偏移量存储在zookeeper中,并编写自定义层,以汇集这些配置并基于此管理消费者和生产者。但是,我相信存在一些更好、更简单的方法/框架。有几种方法: 1.暂停并继续-
当你说“B/G已经在LB上完成”时,你的问题就毫无意义了。您需要部署两次服务(不是scale=2)。负载平衡器选择一个活动的(这样,您就可以在scale=0的情况下休眠一个)。就是这样。不幸的是没有。我必须一直运行两个服务实例。否则,在新服务启动之前将出现停机。或者我误解了你,我想是的。您需要部署
--name myservice\u blue
和--name myservice\u red
。您的负载平衡器只请求蓝色的。红色可以是比例=0。更新红色服务时,将其放大到>=1,蓝色变为scale=0,然后LB请求红色服务。这是一条边界线。您应该扩展您的答案,在此处包含尽可能多的信息,并使用该链接仅供参考。