Kubernetes上的批处理

问题描述 投票:0回答:1

[这里的任何人都有在kubernetes上进行批处理(例如春季批处理?这是个好主意吗?如果我们使用kubernetes自动缩放功能,如何防止批处理处理相同的数据?谢谢。

kubernetes spring-batch batch-processing
1个回答
0
投票

[这里的任何人都有在kubernetes上进行批处理(例如春季批处理?这是个好主意吗?

对于Kubernetes上的Spring Batch,我确实有一些经验,我在Spring Batch on Kubernetes演讲中试图总结一下。

在kubernetes上运行批处理作业可能很棘手:

  • 在处理过程中,节点可能会通过k8s在不同节点上重新调度
  • cron作业可能会触发twice

这需要开发人员方面的重要工作,以确保批处理应用程序具有容错能力(对节点故障具有弹性,可以对pod进行重新调度等),并且可以防止在集群环境中重复执行作业。

Spring Batch可以通过以下几个原因使您免于这项额外​​工作:

  • Spring Batch作业在外部数据库中保持其状态,这样可以在发生作业/节点故障或Pod重新调度(成本效益)的情况下从最后一个保存点重新启动它们。>
  • 由于集中了作业存储库,因此可以避免重复执行作业(稳健性)
  • 在出现短暂错误的情况下重试/跳过失败的项目,例如对Web服务的调用可能会暂时中断或在云环境中重新安排(容错)
  • 如果我们使用kubernetes自动缩放功能,如何防止批处理处理相同的数据?

使每个作业过程具有不同的数据集是一种方法(例如,每个文件有一个作业)。但是您可能会对不同的模式感兴趣,请参阅k8s文档中的Job Patterns和Michael Minella的Cloud-Native Batch Processing with Spring Batch 4演讲。

© www.soinside.com 2019 - 2024. All rights reserved.