對(duì)分布式任務(wù)調(diào)度的理解

1.什么是分布式任務(wù)調(diào)度

分布式任務(wù)調(diào)度就是在分布式環(huán)境下,定時(shí)任務(wù)的管理與執(zhí)行

2.分布式任務(wù)調(diào)度的特性

  • 分布式環(huán)境下,一個(gè)任務(wù)被部署在多實(shí)例的情況下,只有一個(gè)定時(shí)任務(wù)可執(zhí)行
  • 一個(gè)定時(shí)任務(wù)可以分成多個(gè)小任務(wù)并行執(zhí)行(通常稱為切片)

3.以Elastic-Job-lite框架為例說(shuō)明

1) 在分布式環(huán)境中,任務(wù)能夠按指定的調(diào)度策略執(zhí)?,并且能夠避免同?任務(wù)多實(shí)例重復(fù)執(zhí)?

Elastic-Job依賴于Zookeeper進(jìn)?分布式協(xié)調(diào),每個(gè)Elastic-Job的任務(wù)執(zhí)?實(shí)例App作為Zookeeper的客戶端來(lái)操作ZooKeeper的znode,多個(gè)實(shí)例同時(shí)創(chuàng)建/leader節(jié)點(diǎn),/leader節(jié)點(diǎn)只能創(chuàng)建?個(gè),后創(chuàng)建的會(huì)失敗,創(chuàng)建成功的實(shí)例會(huì)被選為leader節(jié)點(diǎn)執(zhí)行任務(wù)

2)去中心化
  • 任務(wù)執(zhí)行節(jié)點(diǎn)對(duì)等
  • 任務(wù)執(zhí)行由節(jié)點(diǎn)自觸發(fā),沒(méi)有中心調(diào)度節(jié)點(diǎn)觸發(fā)
  • 服務(wù)自發(fā)現(xiàn),通過(guò)注冊(cè)中心自發(fā)現(xiàn)
  • 執(zhí)行節(jié)點(diǎn)非固定
3) 任務(wù)分片

任務(wù)分片就是將一個(gè)定時(shí)任務(wù)分成多個(gè)小任務(wù),每個(gè)小任務(wù)可以并發(fā)執(zhí)行,具體的分片策略也可以自由制定,分?和任務(wù)本身是通過(guò)?個(gè)注冊(cè)中?協(xié)調(diào)的。

4) 彈性擴(kuò)容,高可用
  • 新增加?個(gè)運(yùn)?實(shí)例,如job3,它會(huì)?動(dòng)注冊(cè)到注冊(cè)中?,注冊(cè)中?發(fā)現(xiàn)新的服務(wù)上線,注冊(cè)中?會(huì)通知ElasticJob 進(jìn)?重新分?
  • 如果所有的節(jié)點(diǎn)掛掉,只剩下?個(gè)節(jié)點(diǎn),所有分?都會(huì)指向剩下的?個(gè)節(jié)點(diǎn),這也是ElasticJob的?可?
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容