xxl-job高可用部署
xxl-job高可用部署
请尊重作者劳动成果,转载请标明原文链接:
https://www.cnblogs.com/wanghongsen/p/12504130.html
一 高可用部署
xxl-job作为分布式任务调度中心,怎么实现高可用呢,如下图所示 当我们部署一套 XXL-JOB 的时,调度中心 可用分布式部署,
首先我们的调度中心最好部署两台,调度中心会指向同一个 MySQL 实例,这样调度中心一定程度上可以保证它的 HA 。
二 具体流程
1 对于页面的请求操作是根据 nginx进行 负载均衡转发到相应调度中心机器上,它每次调度的时候会通过一个远程任务代理的请求,触发到远程的执行器,
2 在部署远程执行器的时候,只要把每一个机器指向同一个 APP name,这样每个执行器会以心跳注册的方式向调度中心进行注册,它也是 30 秒注册一次,三次心跳。如果是连续三次心跳中断的话,会把当前的执行器摘除掉。这样调度中心发现三次心跳之内都在存活这个执行器的情况下,会把它视为一个存活的执行器。
3 在下次任务触发的时候,调度中心根据提前配置好的路由策略 拿到要调的机器地址,通过RPC的方式去调任务相应的 执行器,
4 然后由该执行器 开始执行任务。
调度中心和执行器之间的通信也是全异步化的,从任务的触发,到执行,到结果回调,如果可以入队列的话,都通过队列的方式进行。