使用xxl的分片广播路由策略实现对账的分片计算

背景

最近在做一个新的对账平台,旧的对账系统存在很多问题,其中一个问题就是性能问题,因此新的对账平台从设计之初就考虑了性能这一块,下面不会讲为什么选择做新的对账平台,也不会讲对账平台的其他设计,就说一下如何使用xxl的分片广播路由策略实现对账的分片计算。

场景分析

渠道对账,一天一个批次,我们对接了100个渠道,然后每个渠道一天有100W的订单数,这是假设,不过对账平台的对账数据量的确会不断增加,事实上我们的对账平台不仅仅只有渠道对账,还有内部业务对账,因此单机计算不行,很自然的想到分片计算,就是我们可以通过增加对账服务实例数量来增加对账的性能,以此来保障性能要求。

实现原理

抽象出两个概念对账批次和对账单,一个对账批次下有多笔对账单,批次下的每个对账单都对齐了那这个对账批次就算对齐了,分片计算就是作用在单笔对账单上。我们拿订单ID去mod总分片数,如果值等于当前对账服务的分片序号那就分配给当前实例来计算。

具体实现

1、设置job的路由策略

2、获取总分片数和当前服务的分片序号

ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
int index = 0;
int total = 1;
if (shardingVO != null) {
            index = shar
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值