elastic-lite-job leader节点作业服务器主节点信息,分为election,sharding和failover三个子节点。分别用于主节点选举,分片和失效转移处理。
子节点名 | 临时节点 | 描述 |
election\instance | 是 | 主节点服务器IP地址 |
election\latch | 否 | 主节点选举的分布式锁 |
sharding\necessary | 否 | 是否需要重新分片的标记 |
sharding\processing | 是 | 主节点在分片时持有的节点 |
failover\items\分片项 | 否 | 一旦有作业崩溃,则会向此节点记录 |
failover\items\latch | 否 | 分配失效转移分片项时占用的分布式锁 |
Leader节点主要类类图如下
①elastic-lite-job启动时,创建LeaderService实例,通过调用electLeader方法进行主节点选举
②选举主节点通过curator框架调用LeaderLatch进行主节点选举,如果当前本地作业服务当选为主节点,通过调用LeaderExecutionCallback回调方法,把当前作业实例(临时数据)设置到主节点下(leader/election/instance)
③isLeaderUntilBlock()如果主节点正在选举中而导致取不到主节点, 则阻塞至主节点选举完成再返回
④isLeader()判断当前服务是否为主节点,通过jobName获取当前服务实例与主节点数据(当选服务主节点实例)进行比较
⑤hasLeader判断作业节点是否已存在
⑥removeLeader()当前节点为主节点,并且服务禁止运行(/servers/127.0.0.1 值为DISABLED),则通过调用removeLeader()方法删除主节点实例,供重新进行选举。