go - 在 kubernetes 中处理 kafka 客户端更新

标签 go kubernetes apache-kafka aws-msk

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

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

  2. 有时由于代码中的 panic(golang),客户端崩溃,但由于它作为 pod 运行,kubernetes 会重新启动它。我无法理解这是好事还是坏事。

谢谢

最佳答案

对于您的第一个问题,我建议您对集群中的部署进行滚动更新。 其次,这是 kubernetes 中部署的一般行为。我可以想到一个外部监控解决方案,它可以在出现 panic 时取消部署您的应用程序或停止处理请求。 如果你能解释为什么你需要这种行为会更好。!

关于go - 在 kubernetes 中处理 kafka 客户端更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56354566/

相关文章:

apache-kafka - 如何创建自定义 kafka 消费者拦截器来一次拦截一条记录?

java - 是否可以使用 Kafka Streams 访问消息头?

windows - Windows 上的 Kafka - 启动服务错误

exception - 戈朗 : Defensive interfaces for nil types

go - 缓存 auth0 JWK 是不是一个坏主意

bash - k8s CronJob 在 pod 列表上循环

kubernetes - 如何启动和停止 Kubernetes 1.8.5 集群?

azure - azure 上的 kudeadm k8s 集群

go - 在Go中将* _Ctype_float转换为float32

go - 获取带有 ASCII 字符串字节的 base-16(十六进制)呈现的字符串