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

在构建新的对账平台时,为解决旧系统的性能问题,采用了xxl的分片广播路由策略进行对账的分片计算。针对每天100个渠道每个渠道100W订单的场景,通过增加对账服务实例,实现性能提升。分片计算基于对账批次和对账单,订单ID模总分片数确定计算实例。具体实现包括设置job路由策略、获取分片信息及匹配对账单。
摘要由CSDN通过智能技术生成

背景

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

场景分析

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

实现原理

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

具体实现

1、设置job的路由策略

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

ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
int index = 0;
int total = 1;
if (shardingVO != null) {
            index = shar
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值