【2】基於zookeeper,quartz,rocketMQ實現叢集化定時系統

Love Lenka發表於2017-04-26

<一>專案結構圖

 

 

(1)ZK協調分配

===>叢集中的每一個定時伺服器與zookeeper互動,由叢集中的master節點進行任務劃分,並將劃分結果分配給叢集中的各個伺服器節點。

===>保證每臺定時伺服器的節點持有唯一的定時任務。

===>當叢集中有節點當機,保證當機的節點持有的任務會被重新分配到正常執行的伺服器節點上。

===>將協調的結果交給本地容器

 

(2)本地容器

===>持有本定時伺服器持有的定時任務

===>將本地容器的任務推送到quartz的容器中,使其完成定時任務觸發

 

(3)Quartz

===>該容器觸發定時任務,將任務傳送到jms訊息上,由業務伺服器監聽觸發業務定時。

 

<二>zookeeper上如何協調任務分配的節點建立結構

 

 

(1)Server節點下的子節點,為定時伺服器叢集中的服務註冊節點

(2)Task節點下的子節點,為定時系統所有的定時任務的節點。

(3)每一個task任務節點下會有唯一一個子節點,該子節點是定時服務叢集中伺服器唯一持有該任務的機器節點。

 

相關文章