源码解析 xxl-job 如何进行稳定性保障

 本文是基于上篇 xxl-job 源码运行解析 进行解析的

1. 调度中心如何进行故障转移(Failover)?

  故障转移就是在调度阶段,如果某一台执行器发生故障支持自动切换到一台正常的执行器机器并且完成调度请求流程

首先在新增一个调度任务的时候,路由策略选择故障转移:

当源码执行到  XxlJobTrigger 的 processTrigger方法时,如下图:

我们可以看到有多种路由策略,故障转移对应的是上图红框中的 FAILOVER。

现在跟着processTrigger方法的源码继续往下走:

我们可以看到它会根据不同的路由策略返回对应的路由结果,这里我们会走到 ExecutorRouteFailover 的 route 方法:

在上述代码中会根据  addressList 地址列表做一个心跳通讯,addressList 是 执行器在启动的时候自动向调度中心注册的 ip 地址:

现在我们假设有2个执行器 ip1,ip2.。所以在上述循环中会根据ip1和ip2 做2次心跳检测, 心跳检测 根据上文源码运行解析可以知道  其实就是调度中心发送rpc请求 去执行器中执行  ExecutorBizImpl 的  beat 方法:

若 任何一个ip地址心跳检测成功则会返回  ReturnT.SUCCESS,然后将当前的 ip 地

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值