elastic-job 执行原理

Elastic-Job执行原理:
1、如果只有一个分片的情况下,就是和原生的quartz一样的,就是所有的任务都在一台机器上面执行
2、如果有两个分片的情况下,然后5个job在两台机器上面执行:

机器:machine1,machine2
job:job1,job2,job3,job4,job5

分片:sharding[0, 1],分别为job1sharding0,job1sharding1,


应用场景:数据分片
比如job1执行的时候就是job1的两个分片job1sharding0,job1sharding1,分别在会在machine1和machine2上面执行,就是把两个分片分到了两台不同的机器上面了,代码里面
可以获取到分片的名称:job1sharding0,job1sharding1,我们这个时候可以定义自己的逻辑,比如我的分片job1sharding0要执行order1数据库里面的order任务,另一个分片
job1sharding1要执行数据库order1里面的order任务,实际就是数据分片


1、假设数据库order表有100万数据,比如我没有分库分表的时候,只是执行order任务的话,我们可以判断,job1sharding0执行数据库里面的0---50万的数据,另一个分片
job1sharding1执行order里面的50---100万的数据
2、假设数据库order表有100万数据,适用于分库分表任务,比如当前分了两个库orderdb0和orderdb1,job1sharding0执行数据库orderdb0里面的数据,job1sharding1执行order里面的数据





Elastic-Job一个分布式任务调度框架,基于ZooKeeper实现了分布式的任务协调和调度。它的原理可以概括为以下几个步骤: 1. 注册中心的连接:Elastic-Job通过连接ZooKeeper注册中心来进行任务的注册和协调。每个任务节点都会在注册中心进行注册,以便其他节点可以发现和协调任务。 2. 任务的分片Elastic-Job将任务分成多个片段(shard),每个片段由一个或多个任务节点执行分片的目的是将任务拆分成多个部分,以便并行执行和负载均衡。 3. 任务的调度:Elastic-Job根据任务配置的调度表达式(cron表达式)来触发任务的执行。调度器会根据表达式计算下一次任务执行的时间,并通知对应的任务节点执行任务。 4. 任务的协调:在多节点环境下,Elastic-Job通过ZooKeeper实现了分布式锁和协调机制,确保同一时间只有一个节点执行特定的任务片段。其他节点会等待锁释放后再去执行其他片段。 5. 任务的执行:任务节点收到调度器的通知后,根据配置的任务逻辑执行具体的业务逻辑。每个节点只负责执行自己被分配到的任务片段。 6. 任务的监控和统计:Elastic-Job提供了丰富的监控和统计功能,可以通过控制台或API获取任务的执行情况、成功率、失败率等信息,方便进行任务的管理和监控。 通过以上步骤,Elastic-Job实现了分布式任务的调度和执行,并提供了高可用、负载均衡、故障恢复等功能,使得分布式任务的开发和管理变得更加简单和可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值