elastic job原理解析
阿新 • • 發佈:2019-01-08
1、每個作業程序都對應一個JobInstance,儲存在JobRegistry中
一個instance就是執行此job分片的一個程序,instanceid由ip+程序號組成。
JobName -> JobInstance
JobName -> shardtotalNumber(該job分片的總數)
JobName -> 作業是否執行
JobName -> JobScheduleController(作業排程控制器)
JobName -> CoordinaryRegistryCenter(註冊中心)
2、主節點選舉觸發
a、主節點down機
b、主節點機器設定為disable
3、重新分片觸發
a、config的分片總數發生了變化
b、節點down
4、failover的觸發
a、節點down,執行在這個instanceid上的分片或者已經failover的分片會重新標記成failover
b、關於failover的配置改變設定為false,刪除failover的相關資訊
監聽到failover的節點如果當前沒有要執行的作業,則直接抓取failover的分片執行。
5、在instanceid上新增TRIGGER,可以出發當前的instance上的job執行(前提是此instance上的job不在執行中)。
6、配置改變會從新排程作業。
7、與zookeeper之間的連線丟失會停止作業排程,等待連線恢復會重新排程。