美文网首页分布式系统
xxl-job 分片策略

xxl-job 分片策略

作者: 蜗牛先森1230 | 来源:发表于2019-06-19 11:51 被阅读0次

策略一

结合分片总数和当前分片,分页加载处理想要表数据,如下所示:

//分片参数
ShardingVO shardingVO = ShardingUtil.getShardingVo();
int i=0;
int pageNo=1;

//执行器数量
int total = shardingVO.getTotal();
//当前分片(下标从0开始)
int index = shardingVO.getIndex();

WearUserQuery wearUserQuery;
do{
    wearUserQuery = new WearUserQuery();
    //页码以分片+分片总数
    wearUserQuery.setPageNo(index+pageNo);
    wearUserQuery.setPageSize(20);
    wearUserQuery.createCriteria().andFirstCommunicationTimeIsNotNull();
    List<WearUser> wearUsers = wearUserService.selectWearUserByQuery(wearUserQuery);
    i = wearUsers.size();
    for (WearUser wearUser : wearUsers) {
        //do something
    }
    //页码以分片+分片总数
    pageNo+=pageNo+total;
}while(i>=20);

以上代码中的缺点:

  1. 增加数据库访问量,执行效率慢
  2. 若执行过程中某个分片宕机了,就会重复加载处理数据

策略二

每个分片一次性读取要处理的数据,根据当前分片取模处理属于各自的数据

//分片参数
ShardingVO shardingVO = ShardingUtil.getShardingVo();
WearUserQuery wearUserQuery = new WearUserQuery();
wearUserQuery.createCriteria().andFirstCommunicationTimeIsNotNull();
List<WearUser> wearUsers = wearUserService.selectWearUserByQuery(wearUserQuery);
int i = wearUsers.size();
for (int j = 0; j < i; j++) {
    //对数据下标以当前分片取模选取处理
    if (j % shardingVO.getTotal() == shardingVO.getIndex()) {
        //do something
    }
}

以上代码如果执行节点1挂了,那么执行节点1的分片,将自动转移到执行节点2或者执行节点3执行,达到分片的高并发,高可靠。

相关文章

  • XXL-JOB日常实用进阶,包括分片任务,阻塞处理策略,路由策略

    主要包括XXL-JOB日志清理,包括分片广播任务,阻塞处理策略,路由策略,运行模式,创建子任务 如果查看XXL-J...

  • xxl-job 分片策略

    策略一 结合分片总数和当前分片,分页加载处理想要表数据,如下所示: 以上代码中的缺点: 增加数据库访问量,执行效率...

  • ShardingSphere官网及总结

    中文文档 分片 分片算法 精确分片算法 范围分片算法 复合分片算法 Hint分片算法 分片策略 标准分片策略 复合...

  • 【mongoDB】mongoDB分片策略

    chunk切分是根据分片策略进行实施的,分片策略的内容包括分片键和分片算法。 当前,MongoDB支持两种分片算法...

  • shardindjdbc-hint策略

    HintShardingStrategy不需要分片键的强制分片策略。这个分片策略,简单来理解就是说,他的分片键不再...

  • sharding-jdbc分片策略

    分片维度 Sharding-JDBC中的分片策略有两个维度,分别是:数据源分片策略(DatabaseShardin...

  • shardindjdbc-range策略

    StandardShardingStrategy策略只支持单分片键的标准分片策略。配置参数:standard.sh...

  • 日知录1-数据分片模型和路由算法

    分片模型: 先将数据映射到分片;再将分片映射到机器;都是多对一的关系。 分片策略:哈希分片和范围分片。 哈希分片通...

  • 学习shardIng-精确分片

    Sharding-JDBC认为对于分片策略存有两种维度: 数据源分片策略(DatabaseShardingStra...

  • 定时器(elastic-job 二)

    分片策略 平均分片策略:举例10个分片,3台服务。第一个台服务分片0,1,2,9。第二台服务分片3,4,5。第三台...

网友评论

    本文标题:xxl-job 分片策略

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