• xxl-job调度的一致性及路由选择策略


    目录

    调度一致性

    执行器路由选择策略


    调度一致性

    所谓的调度一致性,是指保证一次任务调度只有一个机器来执行,而不会因为其是分布式部署而出现多台机器同时执行某一个job。

    xxl-job中实现分布式锁用的数据库的分布式锁,其中一个表只存储表的名称,通过 for update 来查询锁。

    1):conn.setAutoCommit(false); 关闭隐式提交。

    2):select * from xxl_job_lock where lock preparedStatement.execute(); 获得显示排他锁,然后开启事务。

    3):conn.commit(); 事务完毕后,提交。

    4):preparedStatement.close(); 释放悲观锁开启下一次轮回。

    代码在:JobScheduleHelper

    执行器路由选择策略

    路由策略:当执行器集群部署时,提供丰富的路由策略,包括:

    FIRST(第一个):固定选择第一个机器;

    LAST(最后一个):固定选择最后一个机器;

    ROUND(轮询):;

    RANDOM(随机):随机选择在线的机器;

    CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。

    LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举;

    LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举;

    FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;

    BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;

    SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;

    路由策略:第一个(我们采用的策略)

    运行模式:BEAN

    阻塞处理策略:单机串行

  • 相关阅读:
    [附源码]java毕业设计网上报销管理系统
    JVM 核心技术 - 知识点整理
    动态规划完全背包
    大数据认知
    STM32CubeMX教程6 TIM 通用定时器 - 生成PWM波
    【C#】BindingFlags
    基于JavaWeb的网上销售系统设计与实现
    DAY 66 数据库缓存服务——NoSQL之Redis配置与优化
    8–9月,​Sui Move智能合约工作坊将在台北+线上举行
    第六节量变质变规律、否定之否定规律
  • 原文地址:https://blog.csdn.net/ningmengbaby/article/details/126508323