暗中观察

使用Elastic-job-lite(转)
1.怎么使用Elastic-job-lite?(1)安装zookeeper。(2)编写客户端。(3)启动客户端(可...
扫描右侧二维码阅读全文
19
2022/10

使用Elastic-job-lite(转)

1.怎么使用Elastic-job-lite?
(1)安装zookeeper。

(2)编写客户端。

(3)启动客户端(可启动多个)。

2.Elastic-job-lite的客户端怎么编写?
(1)编写Elasticjob实现类。

(2)创建LiteJobConfiguration实例(需要:任务名、任务实现类名、cron表达式、分片总数量)。

(3)创建CoordinatorRegistryCenter实例(需要:zookeeper地址、命名空间)。

(4)创建JobScheduler实例(需要:LiteJobConfiguration和CoordinatorRegistryCenter实例)

(5)调用jobScheduler.init()启动客户端(可启动多个实例)。

然后任务就分成多个分片,在多个实例上执行了。

增加新分片,可以自动重新分配分片;节点故障,可以自动failover。

3.任务如何创建、分配和执行的?
(1)多个实例(每个客户端启动一次,认为是一个实例,以“192.168.72.18@-@21668”格式标识)启动后,首先选主,主可以执行分配分片的操作。

(2)“主实例”按任务配置的分片总数量 和 存活的实例数,进行分片分配。分配策略可自己实现。分配好后,写入zookeeper: /[namespace]/[jobName]/sharding/[0]/instance节点。

(3)实例启动后,按cron表达式启动quartz调度,定时执行:AbstractElasticJobExecutor. execute()。

(4)在execute方法中,客户端根据本地instanceId(格式如:192.168.72.18@-@21668)同zookeeper中分片分配信息比对,确定需要自己执行的分片id集合(形如:[4,5,6])。

(5)依照分配给自身分片id集合,逐个调用用户实现的Elasticjob类。

作者:liuhailong
链接:https://www.jianshu.com/p/10509e429b35
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Last modification:October 19th, 2022 at 10:42 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment