日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里新一代分布式任务调度平台Schedulerx2.0破土而出

發(fā)布時間:2024/8/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里新一代分布式任务调度平台Schedulerx2.0破土而出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 產(chǎn)品簡介

Schedulerx2.0是阿里中間件自研的基于Akka架構(gòu)的新一代分布式任務(wù)調(diào)度平臺,提供定時、任務(wù)編排、分布式跑批等功能。使用Schedulerx2.0,您可以在控制臺配置管理您的定時任務(wù),查詢歷史執(zhí)行記錄,查看運(yùn)行日志。借助Schedulerx2.0,您還可以通過工作流進(jìn)行任務(wù)編排和數(shù)據(jù)傳遞。Schedulerx2.0還提供了簡單易用的分布式編程模型,簡單幾行代碼就可以將海量數(shù)據(jù)分布式到多臺機(jī)器上執(zhí)行。

Schedulerx2.0提供了任務(wù)調(diào)度與執(zhí)行的一整套解決方案,在阿里巴巴集團(tuán)內(nèi)部廣泛使用并久經(jīng)考驗,具有高可靠、海量任務(wù)、秒級別調(diào)度等能力。

上線時間:2019-04-30

釘釘群號:23103656

2. 背景

Schedulerx2.0是Schedulerx1.0(DTS)的下一代產(chǎn)品,采用全新的架構(gòu),是全新自研的下一代分布式任務(wù)調(diào)度平臺,不但解決了老產(chǎn)品的性能瓶頸,還提供了更多更快更強(qiáng)的能力。

  • 更多:支持多種時間表達(dá)式,任務(wù)編排,支持更多的業(yè)務(wù)場景。單集群支持上千萬任務(wù),一天上十億次調(diào)度,支持更多的任務(wù)數(shù)。
  • 更快:支持秒級別調(diào)度,處理準(zhǔn)實時業(yè)務(wù)。
  • 更強(qiáng):支持日志查詢、原地重跑、重刷數(shù)據(jù)等多種操作,提供更強(qiáng)的運(yùn)維能力和排錯手段,解決為什么沒跑,為什么失敗,為什么跑得慢等問題。

3. 功能

3.1 強(qiáng)大的定時調(diào)度器

3.1.1 Crontab

支持unix crontab表達(dá)式,不支持秒級別。

3.1.2 Fixed rate

眾所周知,crontab必須被60整除,比如想每隔40分鐘跑一次,cron不支持。Fixed rate專門用來做定期輪詢,表達(dá)式簡單,不支持秒級別。

3.1.3 Fixed delay

適合對實時性要求比較高的業(yè)務(wù),比如每次執(zhí)行完成隔10秒再跑,那么second delay非常適合你。并且second delay能支持到秒級別。

3.1.4 日歷

支持多種日歷,還可以自定義導(dǎo)入日歷。比如金融業(yè)務(wù)需要在每個交易日執(zhí)行。

3.1.5 時區(qū)

跨國的業(yè)務(wù),需要在每個國家的時區(qū)定時執(zhí)行某個任務(wù)。

3.2 任務(wù)編排

支持工作流(DAG)進(jìn)行任務(wù)編排,操作簡單,前端直接單手操作拖拖拽拽即可。詳細(xì)的任務(wù)狀態(tài)圖能一目了然看到下游任務(wù)為什么沒跑。

3.3 任務(wù)類型

支持多種任務(wù)類型,可以無限擴(kuò)展。

  • java:可以跑在用戶進(jìn)程中,也可以上傳jar包動態(tài)加載。
  • shell:前端直接寫shell腳本。
  • python:前端直接寫python腳本,需要機(jī)器有python環(huán)境。
  • go:前端直接寫go腳本,需要機(jī)器有g(shù)o環(huán)境。
  • 自定義:用戶甚至可以自定義任務(wù)類型,然后實現(xiàn)一個plugin就行了。

3.4 執(zhí)行方式&分布式編程模型

3.4.1 執(zhí)行方式

  • 單機(jī):隨機(jī)挑選一臺機(jī)器執(zhí)行
  • 廣播:所有機(jī)器同時執(zhí)行且等待全部結(jié)束
  • 并行計算:map/mapreduce模型,1~300個子任務(wù),有子任務(wù)列表。
  • 內(nèi)存網(wǎng)格:map/mapreduce模型,10W以下子任務(wù),無子任務(wù)列表,基于內(nèi)存計算,比網(wǎng)格計算快。
  • 網(wǎng)格計算:map/mapreduce模型,100W以下子任務(wù),無子任務(wù)列表,基于文件H2計算。

3.4.2 分布式編程模型

  • Map模型:類似于hadoop mapreduce里的map。只要實現(xiàn)一個map方法,簡單幾行代碼就可以將海量數(shù)據(jù)分布式到客戶自己的多臺機(jī)器上執(zhí)行,進(jìn)行跑批。
  • MapReduce模型:MapReduce模型是Map模型的擴(kuò)展,新增reduce接口,所有子任務(wù)完成后會執(zhí)行reduce方法,可以在reduce方法中返回該任務(wù)實例的執(zhí)行結(jié)果,或者回調(diào)業(yè)務(wù)。

3.5 強(qiáng)大的運(yùn)維能力

  • 數(shù)據(jù)大盤:控制臺提供了執(zhí)行記錄大盤和執(zhí)行列表,可以看到每個任務(wù)的執(zhí)行歷史,并提供操作。
  • 查看日志:每條執(zhí)行記錄,都可以詳情中的日志頁面實時看到日志。如果任務(wù)運(yùn)行失敗了,前端直接就能看到錯誤日志,非常方便。
  • 原地重跑:任務(wù)失敗,修改完代碼發(fā)布后,可以點(diǎn)擊原地重跑。
  • 標(biāo)記成功:任務(wù)失敗,如果后臺把數(shù)據(jù)處理正確了,重跑又需要好幾個小時,直接標(biāo)記成功就好了。
  • Kill:實現(xiàn)JobProcessor的kill()接口,你就可以在前端kill正在運(yùn)行的任務(wù),甚至子任務(wù)。

3.6 數(shù)據(jù)時間

Schedulerx2.0可以處理有數(shù)據(jù)狀態(tài)的任務(wù)。創(chuàng)建任務(wù)的時候可以填數(shù)據(jù)偏移。比如一個任務(wù)是每天00:30運(yùn)行,但是實際上要處理上一天的數(shù)據(jù),就可以向前偏移一個小時。運(yùn)行時間不變,執(zhí)行的時候通過context.getDataTime()獲得的就是前一天23:30。

3.7 重刷數(shù)據(jù)

既然任務(wù)具有了數(shù)據(jù)時間,一定少不了重刷數(shù)據(jù)。比如一個任務(wù)/工作流最終產(chǎn)生一個報表,但是業(yè)務(wù)發(fā)生變更(新增一個字段),或者發(fā)現(xiàn)上一個月的數(shù)據(jù)都有錯誤,那么就需要重刷過去一個月的數(shù)據(jù)。

通過重刷數(shù)據(jù)功能,可以重刷某些任務(wù)/工作流的數(shù)據(jù)(只支持天級別),每個實例都是不同的數(shù)據(jù)時間。

3.8 失敗自動重試

  • 實例失敗自動重試:在任務(wù)管理的高級配置中,可以配置實例失敗重試次數(shù)和重試間隔,比如重試3次,每次間隔30秒。如果重試3次仍舊失敗,該實例狀態(tài)才會變?yōu)槭?#xff0c;并發(fā)送報警。
  • 子任務(wù)失敗自動重試:如果是分布式任務(wù)(并行計算/內(nèi)網(wǎng)網(wǎng)格/網(wǎng)格計算),子任務(wù)也支持失敗自動重試和重試間隔,同樣可以通過任務(wù)管理的高級配置進(jìn)行配置。

3.9 支持原生Spring

之前的老產(chǎn)品Schedulerx1.0(DTS)和spring的結(jié)合非常暴力,對bean的命名有強(qiáng)要求,經(jīng)常遇到注入失敗的問題。Schedulerx2.0支持原生spring語法,接入更加的方便。

3.10 報警監(jiān)控

  • 失敗報警
  • 超時報警
  • 報警方式:短信


原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的阿里新一代分布式任务调度平台Schedulerx2.0破土而出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。