xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.89k stars 10.98k forks source link

k8s集群部署执行器和调度中心,跨k8s集群调度有什么好的解决方案 #1735

Open shutdownslz opened 4 years ago

shutdownslz commented 4 years ago

例如,存在三个k8s集群1、2、3。调度中心部署在集群1中。执行器部署在1、2两个集群。对于1集群来说调度没有问题,调度中心调度2集群上的执行器执行任务就有问题(集群间容器网络未打通通)。 我使用的方案是将执行器参数改为xxl.job.executor.address=http://域名/test ,希望调度中心通过address回掉到执行器,配置了ingress和svc,但是报错如下:

任务触发类型:手动触发
调度机器:10.2.14.58
执行器-注册方式:手动录入
执行器-地址列表:[http://域名/test]
路由策略:随机
阻塞处理策略:单机串行
任务超时时间:0
失败重试次数:0

>>>>>>>>>>>触发调度<<<<<<<<<<<
触发调度:
address:http://域名/test
code:500
msg:invalid request, uri-mapping(/test/run) not found.

如果这种方案不可行的话,有什么推荐的解决方案?

herongyun commented 4 years ago

在项目的springboot 示例下面有解决方案说明 你试试

shutdownslz commented 4 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

herongyun commented 4 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

就是这个地址哈

herongyun commented 4 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

xxl-admin 集群部署多节点会重复执行,按照作者的说法改成一致性hash & 串行执行还是会重复执行,请问你遇到了吗?如果遇到了是怎么解决的。

shutdownslz commented 4 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

xxl-admin 集群部署多节点会重复执行,按照作者的说法改成一致性hash & 串行执行还是会重复执行,请问你遇到了吗?如果遇到了是怎么解决的。

暂时还没有遇见过重复执行的任务。你可以看看调度日志里,触发调度这块是不是触发两次。

你刚才说的这个解决方案似乎不能解决我这种跨k8s集群调度(k8s集群间不能通过容器网络通信)。换句话说我的问题是执行器已经注册上来了,但是调度中心不能通过这个注册上来的地址调用执行器执行任务(不知道这样描述是否合适。)

herongyun commented 4 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

xxl-admin 集群部署多节点会重复执行,按照作者的说法改成一致性hash & 串行执行还是会重复执行,请问你遇到了吗?如果遇到了是怎么解决的。

暂时还没有遇见过重复执行的任务。你可以看看调度日志里,触发调度这块是不是触发两次。

你刚才说的这个解决方案似乎不能解决我这种跨k8s集群调度(k8s集群间不能通过容器网络通信)。换句话说我的问题是执行器已经注册上来了,但是调度中心不能通过这个注册上来的地址调用执行器执行任务(不知道这样描述是否合适。)

我知道你要表达的意思,但是我觉得是可以的,你的容器里面肯定有一个端口是可以向外面通信的,不能通信的是你容器的虚拟网卡ip,你将应用的ip指定到你可以通信的那个ip应该就可以,类似dubbo,spring cloud 这种微服务都是通过ip通信的,肯定是相同的解决思路

cypggs commented 3 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

xxl-admin 集群部署多节点会重复执行,按照作者的说法改成一致性hash & 串行执行还是会重复执行,请问你遇到了吗?如果遇到了是怎么解决的。

暂时还没有遇见过重复执行的任务。你可以看看调度日志里,触发调度这块是不是触发两次。

你刚才说的这个解决方案似乎不能解决我这种跨k8s集群调度(k8s集群间不能通过容器网络通信)。换句话说我的问题是执行器已经注册上来了,但是调度中心不能通过这个注册上来的地址调用执行器执行任务(不知道这样描述是否合适。)

我也遇到了这个问题,请问你解决了么?

guowenmeng commented 3 years ago

在项目的springboot 示例下面有解决方案说明 你试试

您好!,您指的是这个地址吗?https://github.com/xuxueli/xxl-job/blob/master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/SampleXxlJob.java ,如果不是这个方便给个链接吗?非常感谢!

xxl-admin 集群部署多节点会重复执行,按照作者的说法改成一致性hash & 串行执行还是会重复执行,请问你遇到了吗?如果遇到了是怎么解决的。

暂时还没有遇见过重复执行的任务。你可以看看调度日志里,触发调度这块是不是触发两次。

你刚才说的这个解决方案似乎不能解决我这种跨k8s集群调度(k8s集群间不能通过容器网络通信)。换句话说我的问题是执行器已经注册上来了,但是调度中心不能通过这个注册上来的地址调用执行器执行任务(不知道这样描述是否合适。)

请问,如何解决的?