Elastic-Job何为分布式作业
2016-10-23 09:17
204 查看
原文地址:http://dangdangdotcom.github.io/elastic-job/post/1.x/distribution/
任务的分布式执行,需要将一个任务拆分为n个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。
例如:有一个遍历数据库某张表的作业,现有
为满足此需求,可将作业分成
如果分成
注册中心仅用于作业注册和监控信息存储。而主作业节点仅用于处理分片和清理等功能。
个性化参数即
例如:按照地区水平拆分数据库,数据库
如果仅按照分片项配置,开发者需要了解
合理使用个性化参数可以让代码更可读,如果配置为
一旦执行作业的服务器崩溃,等待执行的服务器将会在下次作业启动时替补执行。 开启失效转移功能效果更好,可以保证在本次作业执行时崩溃,备机立即启动替补执行。
例如:
如果服务器
==============================================================================================================
何为分布式作业?
分片概念
任务的分布式执行,需要将一个任务拆分为n个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。例如:有一个遍历数据库某张表的作业,现有
2台服务器。为了快速的执行作业,那么每台服务器应执行作业的
50%。
为满足此需求,可将作业分成
2片,每台服务器执行
1片。作业遍历数据的逻辑应为:服务器
A遍历
ID以奇数结尾的数据;服务器
B遍历
ID以偶数结尾的数据。
如果分成
10片,则作业遍历数据的逻辑应为:每片分到的分片项应为
ID%10,而服务器A被分配到分片项
0,1,2,3,4;服务器B被分配到分片项
5,6,7,8,9,直接的结果就是服务器
A遍历
ID以
0-4结尾的数据;服务器
B遍历
ID以
5-9结尾的数据。
分片项与业务处理解耦
Elastic-job并不直接提供数据处理的功能,框架只会将分片项分配至各个运行中的作业服务器,开发者需要自行处理分片项与真实数据的对应关系。
分布式作业的执行
Elastic-job并无作业调度中心节点,而是基于部署作业框架的程序在到达相应时间点时各自触发调度。
注册中心仅用于作业注册和监控信息存储。而主作业节点仅用于处理分片和清理等功能。
个性化参数的适用场景
个性化参数即shardingItemParameters,可以和分片项匹配对应关系,用于将分片项的数字转换为更加可读的业务代码。
例如:按照地区水平拆分数据库,数据库
A是北京的数据;数据库
B是上海的数据;数据库
C是广州的数据。
如果仅按照分片项配置,开发者需要了解
0表示北京;
1表示上海;
2表示广州。
合理使用个性化参数可以让代码更可读,如果配置为
0=北京,
1=上海,
2=广州,那么代码中直接使用北京,上海,广州的枚举值即可完成分片项和业务逻辑的对应关系。
作业高可用
Elastic-job提供最安全的方式执行作业。将分片项设置为
1,并使用多于
1台的服务器执行作业,作业将会以
1主
n从的方式执行。
一旦执行作业的服务器崩溃,等待执行的服务器将会在下次作业启动时替补执行。 开启失效转移功能效果更好,可以保证在本次作业执行时崩溃,备机立即启动替补执行。
最大限度利用资源
Elastic-job也提供最灵活的方式,最大限度的提高执行作业的吞吐量。将分片项设置为大于服务器的数量,最好是大于服务器倍数的数量,作业将会合理的利用分布式资源,动态的分配分片项。
例如:
3台服务器,分成
10片,则分片项分配结果为服务器
A=0,1,2;服务器
B=3,4,5;服务器
C=6,7,8,9。
如果服务器
C崩溃,则分片项分配结果为服务器
A=0,1,2,3,4;服务器
B=5,6,7,8,9。在不丢失分片项的情况下,最大限度的利用现有资源提高吞吐量。
==============================================================================================================
相关文章推荐
- 案例丨详解当当网的分布式作业框架elastic-job
- 专访当当网张亮:深度解读分布式作业调度框架elastic-job
- 当当开源elastic-job,分布式作业调度框架
- 当当网张亮:深度解读分布式作业调度框架elastic-job
- 详解当当网的分布式作业框架elastic-job
- 【高可用】分布式作业系统 Elastic-Job-Cloud 源码分析
- 分布式作业框架elastic-job
- 房价网是怎么使用分布式作业框架elastic-job
- 详解当当网的分布式作业框架elastic-job
- 【实战Elastic-Job】--详解当当网分布式作业框架
- 详解当当网的分布式作业框架elastic-job
- 详解当当网的分布式作业框架elastic-job
- Elastic-Job分布式作业框架
- Elastic-Job - 分布式定时任务框架
- Elastic-job之脚本作业
- 分库分表框架Sharding-jdbc以及分布式worker:Elastic-job的使用与踩坑
- elastic-job之流式作业
- Elastic-Job - 分布式定时任务框架
- 分布式任务elastic-job
- Elastic-Job - 分布式定时任务框架