日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

說說XXLJob分片任務實現原理?

來源: 責編: 時間:2024-07-19 08:02:17 640觀看
導讀XXL Job 是一個開源的分布式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展的分布式任務調度框架。這兩天咱們開發的 AI Cloud 項目中,也使用到了 XXL Job 來執行分布式任務的調度,可以看出它的部署

XXL Job 是一個開源的分布式任務調度平臺,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展的分布式任務調度框架。89o28資訊網——每日最新資訊28at.com

這兩天咱們開發的 AI Cloud 項目中,也使用到了 XXL Job 來執行分布式任務的調度,可以看出它的部署和使用雖然步驟很多,但用起來還是很簡單的。89o28資訊網——每日最新資訊28at.com

因為其本身為 Spring Boot 項目,所有對于 Java 程序員來說很友好,而且它還提供中文控制臺,所以這也是他能在國內分布式任務調度系統這塊一直流行的原因,如下圖所示:89o28資訊網——每日最新資訊28at.com

89o28資訊網——每日最新資訊28at.com

那么接下來咱們就來聊聊,XXL Job 的路由策略,以及路由策略中分片任務的執行原理。89o28資訊網——每日最新資訊28at.com

1.路由策略

XXL Job 的路由策略主要作用是在任務執行器集群環境中,決定如何選擇合適的執行器來執行任務。89o28資訊網——每日最新資訊28at.com

XXL Job 路由策略包含以下幾個:89o28資訊網——每日最新資訊28at.com

89o28資訊網——每日最新資訊28at.com

其中:89o28資訊網——每日最新資訊28at.com

  • 第一個:選取執行器管理的注冊地址列表中的第一個執行器來執行任務;
  • 最后一個:選取執行器管理的注冊地址列表中的最后一個執行器來執行任務;
  • 輪詢:依次選取執行器管理的注冊地址列表中的執行器,周而復始。為了應對多個定時任務同時觸發帶來的數據一致性問題,XXL-JOB 使用一個靜態的同步 Map 來存儲每個任務的 jobId 和其對應的計數。每次計數增加后,對執行器地址列表的數量取余,將結果作為索引來獲取對應的執行器地址。如果超過 24 小時沒有觸發調用該任務,會清空 Map 以釋放一定空間;
  • 隨機:從執行器管理的注冊地址列表中隨機選取一個執行器來執行任務;
  • 一致性 HASH:實現一致性 HASH 負載均衡算法;
  • 最不經常使用:選擇最近最少被調度的執行器執行任務(通過次數維度選取任務);
  • 最近最久未使用:選擇距離上次被調度時間最長的執行器執行任務(通過時間維度選取任務),有助于平衡各執行器的工作負載;
  • 故障轉移:在任務路由策略選擇“故障轉移”的情況下,如果執行器集群中的某一臺機器出現故障,將會自動 Failover 切換到一臺正常的執行器發送調度請求;
  • 忙碌轉移:當任務分配到某個執行器時,如果該執行器正處于忙碌狀態(可能正在執行其他任務或資源緊張),則會嘗試將任務轉移到其他相對空閑的執行器上執行;
  • 分片廣播:選取執行器管理的注冊地址列表中的所有地址,每個地址都執行一次任務。這種方式類似于 MQ 的廣播模式,可以將任務廣播到集群中的所有執行器上執行。此策略適用于需要在多個執行器上同時執行相同任務的場景,例如數據同步或分布式計算等。

也就是說在這些路由策略中,最復雜的就是分片廣播了。89o28資訊網——每日最新資訊28at.com

2.分片任務實現

所謂的分片廣播也就是分片(執行)任務,它是將一個大任務劃分為多個子任務并行執行,以提高效率。89o28資訊網——每日最新資訊28at.com

假設,我們現在要使用分片任務執行一個大數據的查詢與處理,此時的實現代碼如下:89o28資訊網——每日最新資訊28at.com

import com.xxl.job.core.context.XxlJobHelper;import com.xxl.job.core.log.XxlJobLogger;import org.springframework.stereotype.Component;import java.util.List;@Componentpublic class ShardingBroadcastJob {    @XxlJob("shardingBroadcastTask")     public void execute(String param) {        // 獲取分片參數:分片總數和分片序列號        int shardIndex = XxlJobHelper.getShardIndex();         int shardTotal = XxlJobHelper.getShardTotal();         XxlJobLogger.log("當前節點的 index={}, 總結點數={}, 參數={}", shardIndex, shardTotal, param);        // 模擬獲取數據列表        List<String> dataList = getDataList();         // 執行分片邏輯        shardingExecute(dataList, shardIndex, shardTotal);    }    public List<String> getDataList() {        // 這里可以根據實際情況從數據庫或其他數據源獲取數據列表        // 為了示例簡單,直接返回一個固定的列表        return List.of("data1", "data2", "data3", "data4", "data5", "data6", "data7", "data8", "data9", "data10");    }    public void shardingExecute(List<String> dataList, int shardIndex, int shardTotal) {        XxlJobLogger.log("開始執行分片任務,當前分片={}, 總分片數={}", shardIndex, shardTotal);        // 計算當前分片應處理的數據范圍        int start = (shardIndex * dataList.size()) / shardTotal;        int end = ((shardIndex + 1) * dataList.size()) / shardTotal;        // 處理當前分片的數據        for (int i = start; i < end; i++) {            String data = dataList.get(i);            XxlJobLogger.log("處理數據: {}", data);            // 在此處添加具體的數據處理邏輯        }        XxlJobLogger.log("分片任務執行完成");    }}

在上述代碼中,在execute方法中,通過 XxlJobHelper.getShardIndex() 獲取當前分片序號,通過 XxlJobHelper.getShardTotal() 獲取總分片數。然后模擬獲取了一個數據列表 dataList,接下來使用 shardingExecute 方法執行分片邏輯。89o28資訊網——每日最新資訊28at.com

在 shardingExecute 方法中,根據分片序號和總分片數計算出當前分片應處理的數據范圍,然后遍歷該范圍內的數據并進行處理(此處僅打印數據,實際應用中可添加具體的數據處理邏輯)。89o28資訊網——每日最新資訊28at.com

在實際使用時,需要將任務部署到 XXL Job 執行器集群中,并在調度中心配置相應的任務,選擇分片廣播的路由策略。這樣,當調度中心觸發任務時,所有執行器都會執行該任務,并根據分片參數處理相應的數據分片,這樣就能提升程序整體的執行效率了。89o28資訊網——每日最新資訊28at.com

3.執行原理

了解了 XXL Job 的代碼實現就能明白其運行原理,它的實現原理如下:89o28資訊網——每日最新資訊28at.com

  • 任務配置與分發:在 XXL Job 的調度中心,用戶通過 Web 界面創建一個分片廣播類型的任務,并設置相應的參數,如分片總數(shardingTotalCount)。當調度觸發時,調度中心會將此任務廣播至所有注冊的執行器。
  • 分片參數傳遞:每個執行器在接收到廣播的任務時,會自動獲得分片參數,包括分片總數和當前執行器應該處理的分片序號(shardingItem)。這些參數由 XXL Job 框架自動注入,使得執行器能夠知道它應當處理哪個數據分片。
  • 分片邏輯執行:實際的分片邏輯需要在執行器的任務處理器代碼中實現,開發者需根據分片序號和總數,決定處理哪些數據。這通常涉及對數據源的分片訪問,如數據庫查詢時使用分頁查詢或者 ID 取模等方法來確定每個執行器處理的數據范圍。然后各個執行器并行處理各自分片的數據,互不影響。
  • 結果匯總:由于是廣播任務,每個執行器處理的是全量數據的一個子集,因此不存在匯總操作,每個執行器獨立完成自己的處理邏輯。如果需要最終匯總結果,需要額外的邏輯來收集和整合各個執行器的輸出。

本文鏈接:http://m.www897cc.com/showinfo-26-101719-0.html說說XXLJob分片任務實現原理?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 深入探索 Vite 的熱更新(HMR)實現

下一篇: 軟件版本號為什么那么奇怪?

標簽:
  • 熱門焦點
  • 7月安卓手機性價比榜:努比亞+紅魔兩款新機入榜

    7月登場的新機有努比亞Z50S Pro和紅魔8S Pro,除了三星之外目前唯二的兩款搭載超頻版驍龍8Gen2處理器的產品,而且努比亞和紅魔也一貫有著不錯的性價比,所以在本次的性價比榜單
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之&ldquo;想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!&rdquo;曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 機構稱Q2全球智能手機出貨量同比下滑11% 蘋果份額依舊第2

    7月20日消息,據外媒報道,研究機構的報告顯示,由于需求下滑,今年二季度全球智能手機的出貨量,同比下滑了11%,三星、蘋果等主要廠商的銷量,較去年同期均有下
  • Counterpoint :OPPO雙旗艦戰略全面落地 高端產品銷量增長22%

    2023年6月30日,全球行業分析機構Counterpoint Research發布的《中國智能手機高端市場白皮書》顯示,中國智能手機品牌正在尋求高質量發展,中國高端智能
  • 滴滴違法違規被罰80.26億 共存在16項違法事實

    滴滴違法違規被罰80.26億 存在16項違法事實開始于2121年7月,歷經一年時間,網絡安全審查辦公室對“滴滴出行”網絡安全審查終于有了一個暫時的結束。據“網信
  • SN570 NVMe SSD固態硬盤 價格與性能兼具

    SN570 NVMe SSD固態硬盤是西部數據發布的最新一代WD Blue系列的固態硬盤,不僅閃存技術更為精進,性能也得到了進一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久久精品国产99久久精品芒果| 亚洲精品影院| 欧美性视频网站| 欧美人交a欧美精品| 亚洲成色精品| 999在线观看精品免费不卡网站| 国模精品一区二区三区色天香| 在线播放日韩专区| 在线观看日韩欧美| 狠狠色香婷婷久久亚洲精品| 一区二区在线观看av| 亚洲一区bb| 久久九九热re6这里有精品| 国产精品入口福利| 亚洲日本精品国产第一区| 亚洲图片自拍偷拍| 亚洲欧美日韩另类精品一区二区三区| 久久婷婷亚洲| 国产精品久久久久久久久免费| 亚洲国产日韩一区| 久久久久综合网| 国产一区在线观看视频| 另类酷文…触手系列精品集v1小说| 精品51国产黑色丝袜高跟鞋| 欧美激情按摩| 午夜宅男久久久| 黑人操亚洲美女惩罚| 欧美日本一区二区视频在线观看 | 久久久九九九九| 一本色道88久久加勒比精品 | 欧美精品 日韩| 亚洲免费激情| 国产伦精品一区二区三区四区免费 | 午夜精品偷拍| 久久一区二区三区av| 欧美日韩免费在线视频| 正在播放亚洲| 91久久视频| 狠狠操狠狠色综合网| 国产精品日韩一区二区三区| 国产精品白丝黑袜喷水久久久 | 国产精品视频大全| 欧美日韩国产精品成人| 美女精品在线观看| 麻豆国产精品va在线观看不卡| 久久蜜桃资源一区二区老牛| 久久久久久国产精品mv| 久久综合一区二区三区| 欧美激情第五页| 久久精品视频免费播放| 欧美极品在线观看| 一区二区三区在线观看欧美| 99ri日韩精品视频| 亚洲精品国产视频| 亚洲欧美一区二区三区极速播放| 久久三级视频| 欧美视频精品一区| 影音先锋日韩资源| 亚洲女人小视频在线观看| 久久婷婷一区| 国产精品人成在线观看免费| 在线观看精品| 欧美一区二区三区免费看| 欧美bbbxxxxx| 激情六月婷婷综合| 亚洲免费在线电影| 欧美久久一级| 亚洲人成人99网站| 久久麻豆一区二区| 国产精品视频1区| 亚洲美女精品久久| 欧美 日韩 国产精品免费观看| 国产精品久久久久av| 亚洲日本va午夜在线电影| 欧美在线观看网站| 国产精品99免费看| 亚洲国产美女| 久久国产精品毛片| 国产麻豆午夜三级精品| 日韩午夜av| 欧美日韩一级片在线观看| **性色生活片久久毛片| 美女精品视频一区| 极品尤物久久久av免费看| 欧美综合第一页| 国产伊人精品| 久久激情中文| **性色生活片久久毛片| 美女尤物久久精品| 亚洲精华国产欧美| 欧美日韩国产色综合一二三四| 亚洲免费不卡| 欧美午夜一区| 欧美伊人久久久久久午夜久久久久| 国产精品视频久久一区| 性xx色xx综合久久久xx| 国产亚洲精品久久久| 久久久久国产一区二区三区| 国内精品久久久久国产盗摄免费观看完整版 | 最新国产成人av网站网址麻豆| 欧美.www| 亚洲少妇一区| 国产一区亚洲| 欧美了一区在线观看| 亚洲午夜精品一区二区| 国产日韩欧美| 免费观看欧美在线视频的网站| 亚洲精品免费在线| 国产精品影视天天线| 美女在线一区二区| 亚洲午夜精品| 亚洲第一在线| 国产精品久久久免费| 乱人伦精品视频在线观看| 日韩视频在线观看国产| 国产日韩在线一区二区三区| 欧美大片一区二区三区| 午夜精品一区二区三区在线| 亚洲国产cao| 国模精品娜娜一二三区| 欧美日韩一区成人| 浪潮色综合久久天堂| 亚洲专区免费| 一二三四社区欧美黄| 亚洲国产欧美日韩另类综合| 国产欧美精品xxxx另类| 欧美激情成人在线| 久久综合电影| 久久精品动漫| 亚洲欧美精品一区| av成人手机在线| 在线成人性视频| 国产专区欧美精品| 国产精品美女久久久免费| 欧美成人午夜| 免费日韩成人| 久久国产一区| 欧美中在线观看| 亚洲欧美日韩精品在线| 中文日韩在线视频| 99精品99| 一区二区日韩精品| 亚洲精品一二三区| 亚洲区国产区| 亚洲日本无吗高清不卡| 亚洲精华国产欧美| 久久久久久久综合日本| 久久久久久久综合狠狠综合| 欧美一区观看| 久久精品在线视频| 麻豆91精品| 欧美黄免费看| 国产精品电影观看| 国产精品夜色7777狼人| 国产亚洲一二三区| 在线观看日韩av| 亚洲精品国久久99热| 一区二区日韩| 欧美在线三级| 欧美成人精品福利| 欧美色图麻豆| 国产视频亚洲| 亚洲国产成人tv| 一区二区三区成人精品| 亚洲男人的天堂在线| 久久久亚洲高清| 欧美激情女人20p| 国产欧美在线观看| 亚洲日韩第九十九页| 午夜视频在线观看一区| 久久夜色撩人精品| 国产精品久久国产精品99gif| 国产综合欧美| 中国女人久久久| 欧美1区2区3区| 国产精品羞羞答答| 在线观看日韩专区| 亚洲一区二区三区欧美 | 欧美激情1区2区3区| 国产精品免费久久久久久| 亚洲国产欧美在线人成| 亚洲男人的天堂在线观看 | 欧美国产日本在线| 国产日韩精品电影| 99精品国产热久久91蜜凸| 久久九九有精品国产23| 欧美体内she精视频| 亚洲欧洲在线视频| 欧美中文字幕精品| 欧美三级电影网| 最新国产乱人伦偷精品免费网站| 欧美亚洲午夜视频在线观看| 欧美日韩免费精品| 在线观看不卡av| 久久狠狠亚洲综合| 国产精品青草久久久久福利99| 亚洲黄色免费电影| 久热精品视频在线观看一区| 国产私拍一区| 亚洲制服欧美中文字幕中文字幕| 欧美网站在线观看| 夜夜嗨一区二区三区| 欧美日韩国产首页| 一本色道久久综合亚洲精品按摩|