文章目录
- 一、调度中心集群部署
- 1. HA/集群
- 2. 调度中⼼集群
- 3. 执⾏器集群
- 4. 集群需要满足的条件
- 5. 集群部署最佳实战
- 二、任务执行器的集群配置
- 2.1. 集群地址配置
- 2.2. 执行器名称配置
- 2.3. 执行器端口
- 三、路由策略
一、调度中心集群部署
1. HA/集群
为了避免单点故障,任务调度系统通常需要通过集群实现系统⾼可⽤。由于任务调度系统的特殊性,“调度”和“任务”两个模块需要均⽀持集群部署,由于职责不同,因此各⾃集群侧重点也有有所不同。
2. 调度中⼼集群
⽬标为避免调度模块单点故障,集群节点需要通过锁或命名服务保证单个任务的单次触发,只在其中⼀个节点上⽣效,以防⽌任务的重复触发。
3. 执⾏器集群
⽬标为避免任务模块单点故障,进⼀步可以通过⾃定义路由策略实现Failover等⾼级功能,从⽽在执⾏器某台机器节点故障时⾃动转移不会影响到任务的正常触发执⾏
4. 集群需要满足的条件
调度中心集群部署时,几点要求和建议:
- 1)DB配置保持一致;
- 2)集群机器时钟保持一致(单机集群忽视);
5. 集群部署最佳实战
直接将xxl-job模块在不同服务器部署启动
- 第一种(借助中间件):
官方建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。
xxl.job.admin.addresses=http://192.168.0.4:8080/xxl-job-admin/
- 第二种(直连调度中心应用):
当然也可以在客户端地址配置多个调度中心地址也可以
xxl.job.admin.addresses=http://192.168.0.5:8080/xxl-job-admin/,http://192.168.0.6:8080/xxl-job-admin/,http://192.168.0.7:8080/xxl-job-admin/
二、任务执行器的集群配置
2.1. 集群地址配置
addresses用作配置调度中心的集群地址配置
- 第一种(借助中间件):
- 第二种(直连调度中心应用):
2.2. 执行器名称配置
appname用于调度中心中的执行器名称,集群中保持一致
xxl.job.executor.appname这个属性需要部署在不同服务器上的执行器配置保持一致。
类似于nacos注册中心通过服务名称调用不同微服务一样的道理,俄日服务名称对应多个地址的微服务应用,每个微服务应用有自己单独的服务器ip和端口。
2.3. 执行器端口
- 第一种情况(单机多节点):
如果集群部署在同一服务器部署多个执行器,这个属性xxl.job.executor.port需要定义不同端口,例如:执行器节点1端口为8888,执行器节点2端口为9999,以此类推即可。 - 第二种情况(多机多节点):
这个属性xxl.job.executor.port不做限制,因为ip本身也不一样,唯一性判断标准和ip+端口做一个执行器的唯一标识。
三、路由策略
SpringBoot2 集成 xxl-job任务调度中心_路由策略