在kubernetes中处理kafka客户端更新

时间:2019-05-29 06:47:32

标签: go kubernetes apache-kafka

我有一个在AWS MSK上运行的Kafka集群,其中Kafka生产者和消费者go客户端在kubernetes中运行。生产者负责将数据流发送到Kafka。我需要帮助解决以下问题:

  1. 比方说,生产者代码中有一些代码更改,必须在kubernetes中重新部署它。我怎样才能做到这一点?由于数据是连续生成的,因此我不能简单地停止已经运行的生产者并部署更新的生产者。在这种情况下,我将在更新过程之间丢失数据。

  2. 有时由于代码中出现紧急情况(golang),客户端崩溃了,但是由于它作为Pod运行,因此Kubernetes会重新启动它。我不知道是好是坏。

谢谢

1 个答案:

答案 0 :(得分:0)

对于第一个问题,我建议对群集中的部署进行滚动更新。 第二,这是kubernetes中部署的一般行为。我可以想到一个外部监视解决方案,该解决方案可以在panic的情况下取消部署您的应用程序或停止处理请求。 如果您能解释为什么您确实需要这种行为会更好。