首页 > 解决方案 > 带有一个数据库的 Spring Batch 和多实例 Kubernets 应用程序

问题描述

我不是 100% 了解 SpringBatch 在多实例 Kubernets 应用程序中是否可以正常工作。我阅读了 Kubernetes 上的批处理,所以我知道它通常工作正常,但在答案中没有提到它在使用 ONE 数据库的多实例安装中工作正常。

我们的设置如下所示:我们有多个在 Kubernetes 中运行的应用程序实例,它们共享一个数据库。一些作业将由用户交互触发(在许多响应 UI 请求的 pod 之一中),而另一些作业由来自 kubernetes 的 cronjob 触发(例如数据重组)(在许多响应 REST 请求的 pod 之一中)来自 cronjob)。所有 pod 都包含附带的应用程序。

此设置是否适用于 SpringBatch?

感谢您的帮助 :-)

标签: kubernetesspring-batch

解决方案


就 Spring Batch 而言,所有这些都是部署细节。考虑到这一点,由您来设计您的工作和工作实例。这就是我在选择正确的 Spring Batch 作业参数选择正确的 Kubernetes 作业部署模式部分中详细解释的内容。请注意,此博客文章链接在您共享的答案中。

由于集中式作业存储库设计(即您所说的“ONE 数据库”),Spring Batch 可以保证防止同一作业实例的重复和并发作业执行。

因此,您的问题的答案是肯定的,只要您为 Spring Batch 作业和 Kubernetes 作业选择正确的部署模式。


推荐阅读