美文网首页
阅读xxl-job开源代码总结

阅读xxl-job开源代码总结

作者: 面壁人4号 | 来源:发表于2020-10-25 16:42 被阅读0次

    如何保证调度中心的HA(高可用)?

    xxl-job-admin(调度中心)可以部署多台机器,只需要客户端配置的调度中心地址用,隔开配置多个即可。客户端会在每一个调度中心进行注册

    3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;

    如何保证任务执行HA?

    一个执行器可以由多个机器注册上来,这样调度就可以从多个机器中取选择,具体有第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等策略来执行任务

    4、执行器HA(分布式):任务分布式执行,任务”执行器”支持集群部署,可保证任务执行HA;

    如何分片执行任务?

    执行器集群部署时,任务路由策略选择”分片广播”情况下,一次任务调度将会广播触发对应集群中所有执行器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;

    “分片广播” 以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。

    “分片广播” 和普通任务开发流程一致,不同之处在于可以获取分片参数,获取分片参数进行分片业务处理。
    1、分片任务场景:10个执行器的集群来处理10w条数据,每台机器只需要处理1w条数据,耗时降低10倍;
    2、广播任务场景:广播执行器机器运行shell脚本、广播集群节点进行缓存更新等

    那是如何实现的呢?其实是看目前这个执行器有多少个机器注册上来,然后每个机器给一个固定的分片序号,业务根据每个机器拿到序号进行分片。
    e.g. 现在有一个用户手机号加密任务,目前用户有40W,有四台机器注册上去了,那么第一台机器拿到的分片index就是0,第二台就是1,以此类推。这样在代码里就可以写逻辑,如果分片参数 index = 0 则查询id在0~10W的用户进行处理。

    相关文章

      网友评论

          本文标题:阅读xxl-job开源代码总结

          本文链接:https://www.haomeiwen.com/subject/wlagmktx.html