自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從 XXL-JOB 看主流分布式任務調度平臺怎樣設計調度中心和執(zhí)行器這兩個核心組件!

云計算 分布式
調度中心和執(zhí)行器是分布式任務調度平臺的兩個核心組件,調度中心負責任務觸發(fā)和調度,執(zhí)行器負責任務執(zhí)行和結果反饋。理解了這 2 個核心概念,就可以很容易地理解主流分布式調度平臺的設計原理了。

大家好,我是君哥。

分布式任務調度平臺執(zhí)行一次調度任務,一般會經(jīng)歷下面的過程。

圖片圖片

在上圖中,調度中心從注冊中心拉取執(zhí)行器列表,然后選擇一個執(zhí)行器來執(zhí)行任務,任務執(zhí)行完成后,執(zhí)行器會把任務執(zhí)行結果通知調度中心。

主流的分布式任務調度平臺,比如 XXL-JOB、PowerJob 等都設計了調度中心、執(zhí)行器這兩個核心組件。

1.調度中心

調度中心的作用不光是簡單的任務觸發(fā),還包括管理執(zhí)行器列表、任務結果管理等。

1.1 任務調度方式

任務調度方式主要包括定時調度和 API 觸發(fā)調度。

定時調度有兩種方式,一種是調度中心在配置的任務執(zhí)行時間給執(zhí)行器發(fā)送任務調度信號,直接把任務發(fā)起。第二種是調度中心給任務執(zhí)行器發(fā)送任務觸發(fā)時間,任務執(zhí)行器自己觸發(fā),比如使用延遲隊列。

API 觸發(fā)調度一般是調度中心收到外部 API 請求后,發(fā)起任務調度。

1.2 任務管理

調度中心可以創(chuàng)建、更新、刪除任務。下圖來自 XXL-JOB 官網(wǎng),XXL-JOB 在調度中心配置任務。

圖片圖片

1.3 任務結果

調度中心監(jiān)控任務執(zhí)行結果,查看任務執(zhí)行日志,對于執(zhí)行失敗的任務也可以采取一些處置措施,比如重新觸發(fā)任務執(zhí)行。

1.4 調度時效

定時任務對執(zhí)行開始時間有要求,這就需要調度中心能夠高效地把任務調度請求發(fā)出去,不能積壓調度任務。

1.5 調度策略

調度策略決定了調度中心選擇哪一個執(zhí)行器來執(zhí)行任務,比如第一個、最后一個、隨機、輪詢、廣播等。

2.執(zhí)行器

執(zhí)行器是分布式任務調度系統(tǒng)中最核心的部分,它是真正執(zhí)行跑批任務、決定跑批結果的組件。

2.1 執(zhí)行器注冊

執(zhí)行器要想收到任務觸發(fā)信號,必須首先在注冊中心進行注冊,被調度中心成功拉取到。

注冊成功后,需要周期性地給注冊中心發(fā)送心跳,讓調度中心感知到。

2.2 集群部署

為了保證整個調度平臺的高可用,執(zhí)行器必須集群部署,這樣如果調度中心選擇調度的節(jié)點出現(xiàn)故障,可以進行重試把信號發(fā)送給下一個節(jié)點,不用擔心任務不能被成功調度。

圖片圖片

2.3 多線程設計

執(zhí)行器為了提高執(zhí)行效率,一般會啟動多線程。執(zhí)行器應該能支持線程數(shù)量靈活配置。比如一個數(shù)據(jù)量比較大的任務,可以配置多線程分段處理。但為了不影響同一個執(zhí)行器上的其他任務,不能把線程數(shù)配置地太高,比如可以使用一半的線程處理當前任務。

對于更加復雜的批量任務,也可以設計成多個執(zhí)行器參與來提高效率。比如一個任務調度到 4 個執(zhí)行器執(zhí)行,每個執(zhí)行器 4 個線程參與,提高執(zhí)行效率。

圖片圖片

2.4 動態(tài)擴容

當所有的執(zhí)行器都滿負荷運行,會出現(xiàn)任務排隊的情況,如果執(zhí)行器集群可以動態(tài)擴容,就可以增加幾個執(zhí)行器節(jié)點,調度中心把任務調度到新的節(jié)點上。

2.5 阻塞控制

單個執(zhí)行器很可能會出現(xiàn)批次任務排隊的情況,有必要采取一些阻塞控制策略。比如按照入隊順序依次執(zhí)行,或者丟棄排隊的任務直接給調度中心返回失敗。

3 總結

調度中心和執(zhí)行器是分布式任務調度平臺的兩個核心組件,調度中心負責任務觸發(fā)和調度,執(zhí)行器負責任務執(zhí)行和結果反饋。理解了這 2 個核心概念,就可以很容易地理解主流分布式調度平臺的設計原理了。

責任編輯:武曉燕 來源: 君哥聊技術
相關推薦

2023-11-07 07:56:40

2022-12-29 08:32:50

xxl-job緩存Schedule

2022-01-27 08:44:58

調度系統(tǒng)開源

2023-01-04 09:23:58

2024-08-07 08:15:47

2023-05-08 16:38:46

任務調度分布式任務調度

2023-11-22 10:07:22

2022-06-13 07:43:21

分布式Spring

2024-12-04 10:47:26

2020-09-29 19:20:05

鴻蒙

2023-06-26 00:14:28

Openjob分布式任務

2021-12-26 00:03:27

響應式編程異步

2020-11-06 12:12:35

HarmonyOS

2024-09-23 04:00:00

java架構分布式系統(tǒng)

2025-01-06 08:53:37

2022-06-20 15:32:55

Stage模型分布式開發(fā)

2024-07-31 08:18:40

2021-11-10 16:10:18

鴻蒙HarmonyOS應用

2019-11-15 10:16:27

分布式任務框架

2022-09-23 13:57:11

xxl-job任務調度中間件
點贊
收藏

51CTO技術棧公眾號