我正在使用Azure AKS上的Spring Batch创建报告。我们有HPA(Horizantal Pod Autoscaler)。当我们运行多个批处理时,由于HPA,Pod会扩展,在某些情况下,相同的作业会运行两次,这不是我们想要的。Spring Batch使用数据库存储库进行作业管理,但我们仍然有一个示例,同一个作业运行了两次。有人在Azure AKS上使用过Spring Batch吗?或者在kubernetes安装上?建立同步的最佳方法是什么?以及管理横向扩展?
tp5buhyn1#
SpringBatch使用数据库存储库进行作业管理,但我们仍然有一个示例,同一个作业运行了两次我在这里的博客文章中详细谈到了这个问题:Spring Batch on Kubernetes: Efficient batch processing at scale .建立同步和管理横向扩展的最佳方法是什么?最适合您的用例的部署模式是“Kubernetes job per Spring Batch job instance”,再加上正确配置的中央作业存储库(即具有高隔离级别)。此模式有几个优点:
在您的情况下,我会为每个报告创建一个Spring Batch作业示例(您没有提到报告是关于什么的,但我在这里假设创建一个报告是关于一个不同的标准,这应该是将导致不同作业示例的识别Spring Batch作业参数)。有了这个,报告将是独立的,并且可以以您需要的规模并行生成。你会发现更多的细节在博客文章,我希望你觉得有帮助。
1条答案
按热度按时间tp5buhyn1#
SpringBatch使用数据库存储库进行作业管理,但我们仍然有一个示例,同一个作业运行了两次
我在这里的博客文章中详细谈到了这个问题:Spring Batch on Kubernetes: Efficient batch processing at scale .
建立同步和管理横向扩展的最佳方法是什么?
最适合您的用例的部署模式是“Kubernetes job per Spring Batch job instance”,再加上正确配置的中央作业存储库(即具有高隔离级别)。此模式有几个优点:
在您的情况下,我会为每个报告创建一个Spring Batch作业示例(您没有提到报告是关于什么的,但我在这里假设创建一个报告是关于一个不同的标准,这应该是将导致不同作业示例的识别Spring Batch作业参数)。有了这个,报告将是独立的,并且可以以您需要的规模并行生成。
你会发现更多的细节在博客文章,我希望你觉得有帮助。