go - 在 kubernetes 中处理 kafka 客户端更新
问题描述
我有一个在 AWS MSK 上运行的 Kafka 集群,Kafka 生产者和消费者 go 客户端在 kubernetes 中运行。生产者负责将数据流发送到 Kafka。我需要帮助解决以下问题:
比方说,生产者代码中有一些代码更改,必须在 kubernetes 中重新部署。我怎样才能做到这一点?由于数据是不断生成的,我不能简单地停止已经运行的生产者并部署更新的生产者。在这种情况下,我会在更新过程之间丢失数据。
有时由于代码中的恐慌(golang),客户端崩溃,但由于它作为 pod 运行,kubernetes 重新启动它。我无法理解这是好事还是坏事。
谢谢
解决方案
对于您的第一个问题,我建议您在集群中滚动更新您的部署。其次,这是 Kubernetes 中部署的一般行为。我可以想到一个外部监控解决方案,它可以取消部署您的应用程序或在panic
. 如果你能解释为什么你需要这种行为会更好。!
推荐阅读
- mongodb - 通过 docker compose 在不同的服务中使用/引用容器名称
- c# - 错误:生成还原了 NuGet 包。再次构建项目以在构建中包含这些包。了解更多信息
- android - Applandeo / Material-Calendar-View 问题,其中添加到 calendarView 的事件仅在 2020 年 1 月填充
- python - Python - 显示 Seaborn KDE 绘图
- oracle - alpine linux中的oracle客户端
- javascript - 我应该在前端还是后端处理 JSON,哪个更快?
- javascript - 如何从对象数组中的构造函数访问值
- css - 对于使用 create-react-app 命令构建的应用程序,它是否也为生产构建优化了 css 文件?
- java - MPAndroidChart:大文本大小的x轴标签被切断
- python - 使用循环时除以零运行时错误