当前位置: 首页 > 知识库问答 >
问题:

库伯内特斯Spring批次运行

东郭远航
2023-03-14

我有一个Spring批处理,它划分为“从属步骤”并在线程池中运行,下面是配置:Spring批处理-FlatFileItemWriter错误14416:流已关闭

我想在Kubernetes中运行这个Spring批处理作业。我检查了这个帖子:https://spring.io/blog/2021/01/27/spring-batch-on-kubernetes-efficient-batch-processing-at-scale作者@MAHMOUD BEN HASSINE。

从帖子中,在段落上:

查看我的批处理作业,如果我启动 2 个或更多 pod,听起来一个或多个 pod 会失败,因为它会尝试启动相同的作业。但另一方面,听起来更多的 pod 将并行运行,因为我使用的是分区作业。

我的Spring批次似乎类似于https://kubernetes.io/docs/tasks/job/fine-parallel-processing-work-queue/

这就是说,正确的方法是什么?我应该在部署中设置多少个pod?分区/线程将在单独/不同的pod上运行,还是线程将在一个pod中运行?我在哪里定义它,在并行性中?并行性,它应该与线程数相同吗?

谢谢你!马库斯。

共有1个答案

莫典
2023-03-14

线程在JVM中运行,JVM在容器中运行,容器又在Pod中运行。因此,谈论在不同的Pod上运行不同的线程是没有意义的。

SpringBatch中的分区技术可以是本地的(同一JVM中的多个线程,每个线程处理不同的分区),也可以是远程的(多个JVM处理不同分区)。本地分区需要一个JVM,因此只需要一个Pod。远程分区需要多个JVM,因此需要多个Pod。

我有一个Spring批处理,它被划分成“从属步骤”,并在一个线程池中运行

由于您使用一个工作线程池实现了本地分区,因此您只需要一个Pod来运行您的分区作业。

 类似资料:
  • 我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他

  • 我在Kubernetes是个新手。我想知道在kubernetes环境中最好的生产部署场景是什么。 在过去的学派中,我习惯于将Web服务器(例如Nginx或Apache)放在DMZ层,而将其放在其他层(我们称之为层)。这样,只有web服务器在DMZ上,恶意攻击只能在web服务器VM上进行。 据我所知,K8S部署不再需要这种方法;这是因为K8S自己处理网络、吊舱和流量。所以我在考虑最确定的部署方案。

  • 据我所知,作业对象应该在一定时间后收获豆荚。但是在我的GKE集群(库伯内特斯1.1.8)上,“kubectl get pods-a”似乎可以列出几天前的豆荚。 所有这些都是使用乔布斯API创建的。 我确实注意到在使用 kubectl 删除作业后,pod 也被删除了。 我在这里主要担心的是,我将在批量作业中在集群上运行成千上万个pod,并且不想让内部待办系统过载。

  • 我试图设置Kubernetes入口,将外部http流量路由到前端pod(路径/)和后端pod(路径/rest/*),但我总是得到400错误,而不是主nginx索引。html。 所以我在第https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页尝试了谷歌库伯内特斯的例子,但我总是得到400个错误。有什么想法吗?

  • 我是Kubernetes的新手,他们的概念我不太清楚:云提供商。 我已经使用RKE(Rancher引擎)安装了我的库伯内特斯集群。 我的集群设置在rancher2的顶部。 我的节点是托管OVH服务器的虚拟机。 我设法让运行中的应用程序具有L7入口和ClusterIP服务,但每次我尝试使用L4负载平衡器时,负载平衡器都处于挂起状态。根据https://github.com/rancher/ranch

  • 我有一个简单的容器,它由安装在阿尔卑斯山上的OpenLDAP组成。它被安装为以非root用户身份运行。我能够使用我的本地Docker引擎运行容器而没有任何问题。但是,当我将其部署到我们的库伯内特斯系统时,它几乎立即被OOMKill杀死。我尝试在没有任何更改的情况下增加内存。我还查看了pod的内存使用情况,没有发现任何异常。 服务器启动为slapd-d debug-hldap://0.0.0.0:1

  • 我正在尝试运行集成minikube与Jenkins。我得到以下异常: 配置如下Kubernetes url所示:192.168.99.101:8443 Kubernetes 1 希望你的协助。