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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
版权属于:sunjianhua
本文链接:https://sunjianhua.cn/archives/elastic-job-lite.html
转载时须注明出处及本声明,如果不小心侵犯了您的权益,请联系邮箱:NTA2MTkzNjQ1QHFxLmNvbQ==