一 xxl-job集群概述
1.1 xxl-job集群HA的作用
为了避免单点故障,任务调度系统通常需要通过集群实现系统高可用
由于任务调度系统的特殊性,“调度”和“任务”两个模块需要均支持集群部署,由于职责不同,因此各自集群侧重点也有有所不同。
1.2 调度中心 的HA
目标为避免调度模块单点故障,集群节点需要通过锁或命名服务保证单个任务的单次触发,只在其中一个节点上生效,以防止任务的重复触发。
1.3 执行器 的HA
目标为避免任务模块单点故障,进一步可以通过自定义路由策略实现Failover等高级功能,从而在执行器某台机器节点故障时自动转移不会影响到任务的正常触发执行
二 调度中心的搭建
2.1 架构如下
通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。
调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
如果mysql做主从,调度中心集群节点务必强制走主库;
2.2 配置操作
2.2.1 调度中心节点1:8080配置
1.节点1的配置,修改端口号为8080,数据库连接地址和用户名和密码
2.执行mvn package打包:
3.启动jar包
2.2.2 调度中心节点2:8081配置
1.节点2配置,修改端口号为8081,数据库连接地址和用户名和密码
2.执行mvn package打包:
3.启动jar包
2.2.3 访问调度中心页面
1.访问页面
1.http://localhost:8080/xxl-job-admin/user
2.http://localhost:8081/xxl-job-admin/user
2.2.4 调度中心配置执行器
1.执行器
2.给任务配置执行器
三 执行器集群配置(自定义的任务客户端)
3.1 定时任务逻辑
3.2 节点1:8083配置
3.2.1 配置修改
1.修改实例应用的端口改为 8083
2.修改调度中心的集群地址
3.修改调度中心的访问token
4.修改实例应用名称
5.修改执行器的端口为9993
3.2.2 启动jar包
3.3 节点2:8084配置
3.3.1 配置修改
1.修改实例应用的端口改为 8084
2.修改调度中心的集群地址
3.修改调度中心的访问token
4.修改实例应用名称
5.修改执行器的端口为9994
3.3.2 启动jar包
3.4 节点3:8085配置
3.4.1 配置修改
1.修改实例应用的端口改为 8085
2.修改调度中心的集群地址
3.修改调度中心的访问token
4.修改实例应用名称
5.修改执行器的端口为9995
3.4.2 启动jar包
3.5 配置任务
3.5.1.配置任务,并选择定时执行器
1.选择新增,设置路由策略为:分片广播方式
2.隶属新建的执行器。