九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
分布式定時(shí)任務(wù)調(diào)度系統(tǒng)技術(shù)選型

來(lái)源:EFbiz

blog.csdn.net/guyue35/article/details/84883408

  • 1. 什么是分布式定時(shí)任務(wù)
  • 2. 常見(jiàn)開(kāi)源方案
    • elastic-job
    • xxl-job
    • quartz
    • Saturn
    • opencron
    • antares
  • 3. 比較

1. 什么是分布式定時(shí)任務(wù)

把分散的,可靠性差的計(jì)劃任務(wù)納入統(tǒng)一的平臺(tái),并實(shí)現(xiàn)集群管理調(diào)度和分布式部署的一種定時(shí)任務(wù)的管理方式。叫做分布式定時(shí)任務(wù)。

2. 常見(jiàn)開(kāi)源方案

  • elastic-job
  • xxl-job
  • quartz
  • saturn
  • opencron
  • antares

elastic-job

elastic-job 是由當(dāng)當(dāng)網(wǎng)基于quartz 二次開(kāi)發(fā)之后的分布式調(diào)度解決方案 , 由兩個(gè)相對(duì)獨(dú)立的子項(xiàng)目Elastic-Job-Lite和Elastic-Job-Cloud組成 。

Elastic-Job-Lite定位為輕量級(jí)無(wú)中心化解決方案,使用jar包的形式提供分布式任務(wù)的協(xié)調(diào)服務(wù)。

Elastic-Job-Cloud使用Mesos + Docker(TBD)的解決方案,額外提供資源治理、應(yīng)用分發(fā)以及進(jìn)程隔離等服務(wù)

亮點(diǎn):

  1. 基于quartz 定時(shí)任務(wù)框架為基礎(chǔ)的,因此具備quartz的大部分功能
  2. 使用zookeeper做協(xié)調(diào),調(diào)度中心,更加輕量級(jí)
  3. 支持任務(wù)的分片
  4. 支持彈性擴(kuò)容 , 可以水平擴(kuò)展 , 當(dāng)任務(wù)再次運(yùn)行時(shí),會(huì)檢查當(dāng)前的服務(wù)器數(shù)量,重新分片,分片結(jié)束之后才會(huì)繼續(xù)執(zhí)行任務(wù)
  5. 失效轉(zhuǎn)移,容錯(cuò)處理,當(dāng)一臺(tái)調(diào)度服務(wù)器宕機(jī)或者跟zookeeper斷開(kāi)連接之后,會(huì)立即停止作業(yè),然后再去尋找其他空閑的調(diào)度服務(wù)器,來(lái)運(yùn)行剩余的任務(wù)
  6. 提供運(yùn)維界面,可以管理作業(yè)和注冊(cè)中心。

elastic-job結(jié)合了quartz非常優(yōu)秀的時(shí)間調(diào)度功能,并且利用ZooKeeper實(shí)現(xiàn)了靈活的分片策略。除此之外,還加入了大量實(shí)用的監(jiān)控和管理功能,

以及其開(kāi)源社區(qū)活躍、文檔齊全、代碼優(yōu)雅等優(yōu)點(diǎn),是分布式任務(wù)調(diào)度框架的推薦選擇。

由于elastic-job-lite 不支持動(dòng)態(tài)添加作業(yè),此處僅貼上elastic-job-Cloud架構(gòu)圖

xxl-job

由個(gè)人開(kāi)源的一個(gè)輕量級(jí)分布式任務(wù)調(diào)度框架 ,主要分為 調(diào)度中心和執(zhí)行器兩部分 , 調(diào)度中心在啟動(dòng)初始化的時(shí)候,會(huì)默認(rèn)生成執(zhí)行器的RPC代理

對(duì)象(http協(xié)議調(diào)用), 執(zhí)行器項(xiàng)目啟動(dòng)之后, 調(diào)度中心在觸發(fā)定時(shí)器之后通過(guò)jobHandle 來(lái)調(diào)用執(zhí)行器項(xiàng)目里面的代碼,核心功能和elastic-job差不多

,同時(shí)技術(shù)文檔比較完善

系統(tǒng)架構(gòu)圖:

quartz

quartz 的常見(jiàn)集群方案如下,通過(guò)在數(shù)據(jù)庫(kù)中配置定時(shí)器信息, 以數(shù)據(jù)庫(kù)悲觀鎖的方式達(dá)到同一個(gè)任務(wù)始終只有一個(gè)節(jié)點(diǎn)在運(yùn)行,

優(yōu)點(diǎn):

  1. 保證節(jié)點(diǎn)高可用 (HA), 如果某一個(gè)幾點(diǎn)掛了, 其他節(jié)點(diǎn)可以頂上

缺點(diǎn):

  1. 同一個(gè)任務(wù)只能有一個(gè)節(jié)點(diǎn)運(yùn)行,其他節(jié)點(diǎn)將不執(zhí)行任務(wù),性能低,資源浪費(fèi)
  2. 當(dāng)碰到大量短任務(wù)時(shí),各個(gè)節(jié)點(diǎn)頻繁的競(jìng)爭(zhēng)數(shù)據(jù)庫(kù)鎖,節(jié)點(diǎn)越多這種情況越嚴(yán)重。性能會(huì)很低下
  3. quartz 的分布式僅解決了集群高可用的問(wèn)題,并沒(méi)有解決任務(wù)分片的問(wèn)題,不能實(shí)現(xiàn)水平擴(kuò)展

Saturn

Saturn是唯品會(huì)在github開(kāi)源的一款分布式任務(wù)調(diào)度產(chǎn)品。它是基于當(dāng)當(dāng)elastic-job 1.0版本來(lái)開(kāi)發(fā)的,其上完善了一些功能和添加了一些新的feature。

亮點(diǎn):

  1. 支持多語(yǔ)言開(kāi)發(fā) python、Go、Shell、Java、Php。
  2. 管理控制臺(tái)和數(shù)據(jù)統(tǒng)計(jì)分析更加完善

缺點(diǎn):

  1. 技術(shù)文檔較少 , 該框架是2016年由唯品會(huì)的研發(fā)團(tuán)隊(duì)基于elastic-job開(kāi)發(fā)而來(lái)的

opencron

一個(gè)功能完善真正通用的linux定時(shí)任務(wù)調(diào)度定系統(tǒng),滿足多種場(chǎng)景下各種復(fù)雜的定時(shí)任務(wù)調(diào)度,同時(shí)集成了linux實(shí)時(shí)監(jiān)控,webssh,提供一個(gè)方便管理定時(shí)任務(wù)的平臺(tái)

缺點(diǎn):僅支持 kill任務(wù), 現(xiàn)場(chǎng)執(zhí)行,查詢?nèi)蝿?wù)運(yùn)行狀態(tài) 等, 主要功能是著重于任務(wù)的修改和查詢上。不能動(dòng)態(tài)的添加任務(wù)以及任務(wù)分片。

antares

優(yōu)點(diǎn):

  1. 一個(gè)任務(wù)僅會(huì)被服務(wù)器集群中的某個(gè)節(jié)點(diǎn)調(diào)度,調(diào)度機(jī)制基于成熟的 quartz
  2. 并行執(zhí)行 , 用戶可通過(guò)對(duì)任務(wù)預(yù)分片,有效提升任務(wù)執(zhí)行效率
  3. 失效轉(zhuǎn)移
  4. 彈性擴(kuò)容,在任務(wù)運(yùn)行時(shí),可以動(dòng)態(tài)的加機(jī)器
  5. 友好的管理控制臺(tái)

缺點(diǎn):

  1. 不能動(dòng)態(tài)的添加任務(wù),僅能在控制臺(tái)對(duì)任務(wù)進(jìn)行觸發(fā),暫停,刪除等操作
  2. 文檔不多,開(kāi)源社區(qū)不夠活躍

系統(tǒng)架構(gòu)圖如下:

3. 比較

此處列出了幾個(gè)代表性的開(kāi)源產(chǎn)品

featurequartzelastic-job-cloudxxl-jobantaresopencron
依賴mysqljdk1.7+, zookeeper 3.4.6+ ,maven3.0.4+ ,mesosmysql ,jdk1.7+ , maven3.0+jdk 1.7+ , redis , zookeeperjdk1.7+ , Tomcat8.0+
HA多節(jié)點(diǎn)部署,通過(guò)競(jìng)爭(zhēng)數(shù)據(jù)庫(kù)鎖來(lái)保證只有一個(gè)節(jié)點(diǎn)執(zhí)行任務(wù)通過(guò)zookeeper的注冊(cè)與發(fā)現(xiàn),可以動(dòng)態(tài)的添加服務(wù)器。支持水平擴(kuò)容集群部署集群部署
任務(wù)分片支持支持支持
文檔完善完善完善完善文檔略少文檔略少
管理界面無(wú)支持支持支持支持
難易程度簡(jiǎn)單較復(fù)雜簡(jiǎn)單一般一般
公司OpenSymphony當(dāng)當(dāng)網(wǎng)個(gè)人個(gè)人個(gè)人
高級(jí)功能彈性擴(kuò)容,多種作業(yè)模式,失效轉(zhuǎn)移,運(yùn)行狀態(tài)收集,多線程處理數(shù)據(jù),冪等性,容錯(cuò)處理,spring命名空間支持彈性擴(kuò)容,分片廣播,故障轉(zhuǎn)移,Rolling實(shí)時(shí)日志,GLUE(支持在線編輯代碼,免發(fā)布),任務(wù)進(jìn)度監(jiān)控,任務(wù)依賴,數(shù)據(jù)加密,郵件報(bào)警,運(yùn)行報(bào)表,國(guó)際化任務(wù)分片, 失效轉(zhuǎn)移,彈性擴(kuò)容 ,時(shí)間規(guī)則支持quartz和crontab ,kill任務(wù), 現(xiàn)場(chǎng)執(zhí)行,查詢?nèi)蝿?wù)運(yùn)行狀態(tài)
缺點(diǎn)沒(méi)有管理界面,以及不支持任務(wù)分片等。不適用于分布式場(chǎng)景需要引入zookeeper , mesos, 增加系統(tǒng)復(fù)雜度, 學(xué)習(xí)成本較高調(diào)度中心通過(guò)獲取 DB鎖來(lái)保證集群中執(zhí)行任務(wù)的唯一性, 如果短任務(wù)很多,隨著調(diào)度中心集群數(shù)量增加,那么數(shù)據(jù)庫(kù)的鎖競(jìng)爭(zhēng)會(huì)比較厲害,性能不好。不支持動(dòng)態(tài)添加任務(wù)不適用于分布式場(chǎng)景
使用企業(yè)大眾化產(chǎn)品,對(duì)分布式調(diào)度要求不高的公司大面積使用36氪,當(dāng)當(dāng)網(wǎng),國(guó)美,金柚網(wǎng),聯(lián)想,唯品會(huì),亞信,平安,豬八戒大眾點(diǎn)評(píng),運(yùn)滿滿,優(yōu)信二手車,拍拍貸
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
定時(shí)任務(wù)的分布式調(diào)度
分布式定時(shí)任務(wù)調(diào)度平臺(tái)Elastic-Job技術(shù)詳解
大數(shù)據(jù)“分布式調(diào)度框架”大集合
再見(jiàn) Spring Task,這個(gè)定時(shí)任務(wù)框架真香!
學(xué)會(huì)這10種定時(shí)任務(wù),有點(diǎn)飄了...
聊聊分布式定時(shí)任務(wù)中間件架構(gòu)及其實(shí)現(xiàn)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服