为了避免单点故障,任务调度系统通常需要通过集群实现系统⾼可⽤。由于任务调度系统的特殊性,“调度”和“任务”两个模块需要均⽀持集群部署,由于职责不同,因此各⾃集群侧重点也有有所不同。
⽬标为避免调度模块单点故障,集群节点需要通过锁或命名服务保证单个任务的单次触发,只在其中⼀个节点上⽣效,以防⽌任务的重复触发。
⽬标为避免任务模块单点故障,进⼀步可以通过⾃定义路由策略实现Failover等⾼级功能,从⽽在执⾏器某台机器节点故障时⾃动转移不会影响到任务的正常触发执⾏
调度中心集群部署时,几点要求和建议:
直接将xxl-job模块在不同服务器部署启动
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/
addresses用作配置调度中心的集群地址配置
appname用于调度中心中的执行器名称,集群中保持一致
xxl.job.executor.appname这个属性需要部署在不同服务器上的执行器配置保持一致。
类似于nacos注册中心通过服务名称调用不同微服务一样的道理,俄日服务名称对应多个地址的微服务应用,每个微服务应用有自己单独的服务器ip和端口。