【发布时间】:2021-07-11 02:11:27
【问题描述】:
我很好奇如何使用来自 Google Pub/Sub 的应用程序处理升级/重启情况。
例如,我对开发一个 Golang 应用程序特别感兴趣,该应用程序部署在运行多个 Pod 的 Kubernetes 中并使用来自 Google Pub/Sub 的消息。我关心的是如何确保在升级 pod 时不会丢失任何消息(或处理两次)。
我了解应用程序会从订阅中读取消息,然后必须确认它已收到该消息。我觉得在确认消息和 Pod 关闭升级之间可能存在竞争条件?
我知道使用 Dataflow 作业可以做类似的事情,因为您可以停止流式作业并发出信号以排出消息。
我认为必须有某种方式来优雅地处理这个问题,或者这真的是 Dataflow 更适合的情况吗?
【问题讨论】:
标签: go kubernetes google-cloud-dataflow google-cloud-pubsub dataflow