elastic-lite-job leader节点

elastic-lite-job  leader节点作业服务器主节点信息,分为election,shardingfailover三个子节点。分别用于主节点选举,分片和失效转移处理。

子节点名

临时节点

描述

election\instance

主节点服务器IP地址
一旦该节点被删除将会触发重新选举
重新选举的过程中一切主节点相关的操作都将阻塞

election\latch

主节点选举的分布式锁
为curator的分布式锁使用

sharding\necessary

是否需要重新分片的标记
如果分片总数变化,或作业服务器节点上下线或启用/禁用,以及主节点选举,会触发设置重分片标记
作业在下次执行时使用主节点重新分片,且中间不会被打断
作业执行时不会触发分片

sharding\processing

主节点在分片时持有的节点
如果有此节点,所有的作业执行都将阻塞,直至分片结束
主节点分片结束或主节点崩溃会删除此临时节点

failover\items\分片项

一旦有作业崩溃,则会向此节点记录
当有空闲作业服务器时,会从此节点抓取需失效转移的作业项

failover\items\latch

分配失效转移分片项时占用的分布式锁
为curator的分布式锁使用

Leader节点主要类类图如下

elastic-lite-job leader节点_第1张图片

elastic-lite-job启动时,创建LeaderService实例,通过调用electLeader方法进行主节点选举

选举主节点通过curator框架调用LeaderLatch进行主节点选举,如果当前本地作业服务当选为主节点,通过调用LeaderExecutionCallback回调方法,把当前作业实例(临时数据)设置到主节点下(leader/election/instance)

isLeaderUntilBlock()如果主节点正在选举中而导致取不到主节点, 则阻塞至主节点选举完成再返回

isLeader()判断当前服务是否为主节点,通过jobName获取当前服务实例与主节点数据(当选服务主节点实例)进行比较

hasLeader判断作业节点是否已存在

removeLeader()当前节点为主节点,并且服务禁止运行(/servers/127.0.0.1  值为DISABLED),则通过调用removeLeader()方法删除主节点实例,供重新进行选举。

你可能感兴趣的:(Java)