elastic-job作业分片算法

本文介绍了Elastic-Job的三种作业分片策略:AverageAllocationJobShardingStrategy(平均分配)、OdevitySortByNameJobShardingStrategy(奇偶排序)和RotateServerByNameJobShardingStrategy(轮转)。平均分配策略可能导致某些服务器负载不均,而奇偶排序和轮转策略则试图优化这种状况,避免作业集中在序号小的服务器上。
摘要由CSDN通过智能技术生成

elastic-job作业分片策略

elastic-job有以下分片策略:
1. AverageAllocationJobShardingStrategy分片策略
2. OdevitySortByNameJobShardingStrategy分片策略
3. RotateServerByNameJobShardingStrategy分片策略
并且支持还支持自定义分片策略

(1)AverageAllocationJobShardingStrategy分片策略,即基于平均分配算法的分片策略,是默认的分片策略。
对应的class是com.dangdang.ddframe.job.lite.api.strategy.impl.AverageAllocationJobShardingStrategy
具体实现:
a. 当作业数能被服务器整除情况下,依次平均分配作业片:
 如果有3台服务器, 分成9片, 则每台服务器分到的分片是: 1=[0,1,2], 2=[3,4,5], 3=[6,7,8].
b. 如果分片不能整除,则不能整除的多余分片将依次追加到序号小的服务器:
 如果有3台服务器, 分成8片, 则每台服务器分到的分片是: 1=[0,1,6], 2=[2,3,7], 3=[4,5].
 如果有3台服务器, 分成10片, 则每台服务器分到的分片是: 1=[0,1,2,9], 2=[3,4,5], 3=[6,7,8].
 
该策略缺点:平均分片策略,当分片数小于作业服务器数时,作业会被永远分配序号小的服务器,而导致IP地址靠后的服务器空闲。另外
当有多个作业任务的时候,序号小的服务器分配的任务会相对多一些。

基于平均分配算法的代码如下:
 

/**
 *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值