999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XXL-JOB的分布式定時任務研究和應用

2022-06-21 01:14:24鄭祥,顧丹鵬,陳肖勇
計算機時代 2022年6期

鄭祥,顧丹鵬,陳肖勇

摘? 要: 隨著微服務架構成為主流,單體定時任務由于單點故障等問題漸漸無法滿足平時的業務需求。分布式定時任務通過集群的方式進行管理調度,大大降低了開發和維護成本。通過分布式部署,保證了系統的高可用,伸縮性,提高了容錯率。XXL-JOB擁有優秀的可視化界面,使用方便靈活高效。對比市場上的主流定時任務框架,基于XXL-JOB給出了一種分布式定時任務的解決方案,并在石塢實驗室項目進行了部署和使用。

關鍵詞: 微服務; 分布式; 定時任務; XXL-JOB

中圖分類號:TP399? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)06-80-03

Distributed timing task deployment based on XXL-JOB

Zheng Xiang1,2, Gu Danpeng1,2, Chen Xiaoyong1,2

(1. PowerchinaHuadong Engineering Corporation Limited, Hangzhou, Zhejiang 311122,China;

2. Zhejiang Huadong Engineering Digital Technology Co.Ltd)

Abstract: As the microservice architecture becoming the mainstream, the single timing task can not meet the usual business needs due to single point of failure and other problems. Distributed timing tasks are managed and scheduled by cluster, which greatly reduces the development and maintenance cost. Through distributed deployment, the high availability, scalability and fault tolerance of the system are ensured. XXL-JOB has an excellent visual interface, which can deploy and manage timing tasks through the console, and is convenient, flexible and efficient. Compared with the mainstream timing task framework in the market, a distributed timing task solution is given based on XXL-JOB, which is deployed and used in Shiwu laboratory project.

Key words: microservices; distributed; timing task; XXL-JOB

0 引言

隨著業務場景變得越來越復雜,定時任務在程序設計中存在廣泛應用。剛開始企業發展規模較小,業務范圍有限,所以定時任務的需求也很少,這時定時任務可以直接在單臺服務器節點上進行部署,而且基本不需要對這些任務進行控制和管理,任務也能順利執行[1]。當然,這種方式會導致單點故障的問題,所以企業一般就會采用多臺服務器節點進行備份來保證任務的成功執行。而隨著企業的發展規模越來越大,業務邏輯愈加復雜,導致定時任務的需求量也在不斷攀升。此時單個服務器節點已經無法承載眾多定時任務同時執行,需要部署多臺服務器節點來執行這些定時任務。而定時任務的調度問題也隨之而來,首先是定時任務的路由分配問題,即:應該由哪臺服務器執行這個任務。其次是在分布式部署的情況下,定時任務的調度信息,執行狀態的監控如何獲取。由于同時部署在多臺集群機器上,因此到達指定的定時時間時,多臺機器上的定時器可能會同時啟動,造成重復數據或者程序異常等問題。為了解決上述問題,市面上也誕生出了多種分布式事務解決方案,其中XXL-JOB便是其中之一。

1 分布式定時任務對比

1.1 XXL-JOB簡介

XXL-JOB將調度行為抽象形成“調度中心”公共平臺,而平臺自身并不承擔業務邏輯,“調度中心”負責發起調度請求[2]。將任務抽象成分散的Job Handler,交由“執行器”統一管理,“執行器”負責接收調度請求并執行對應的Job Handler中業務邏輯。因此,“調度”和“任務”兩部分可以相互解耦,提高系統整體穩定性和擴展性。

1.2 Elastic-JOB簡介

Elastic-JOB是面向互聯網生態和海量任務的分布式調度解決方案,由兩個相互獨立的子項目ElasticJob-Lite和ElasticJob-Cloud組成。它通過彈性調度、資源管控,以及作業治理的功能,打造一個適用于互聯網場景的分布式調度解決方案,并通過開放的架構設計,提供多元化的作業生態[3]。

1.3 Quartz簡介

Quartz是一個功能豐富的開源作業調度庫,可以用于創建簡單或復雜的調度,以執行數十個、數百個甚至數萬個作業;其任務被定義為標準Java組件的作業,可以執行幾乎任何可以對其進行編程的操作。Quartz調度器包括許多企業級特性,例如對JTA事務和集群的支持[4]。

上述三種定時任務框架的整體比較如表1所示。

2 XXL-JOB部署方案研究

2.1 部署方案的選擇

隨著微服務架構逐漸成為主流架構風格。同時,伴隨著Docker容器技術的發展,特別是各種Kubernetes系列開源產品的成熟化,使得微服務落地成為現實。工程數據管理平臺基于Rancher容器平臺給出了一種部署微服務系統的解決方案,并在石塢實驗室項目開發環境實現了微服務的整體部署[5]。

基于Rancher的Docker鏡像部署方式由于直接運行于宿主內核,無需啟動完整的操作系統,因此可以做到秒級,甚至毫秒級的啟動時間,大大的節約了開發測試部署的時間。而且Docker對系統資源的利用率較高,無論是應用執行速度,內存損耗或文件存儲速度,都要比傳統虛擬機技術更高效。因此此次部署也采用基于Rancher的Docker鏡像部署方式。

2.2 部署流程

XXL-JOB將調度和任務剝離解耦,分為調度中心和執行器,因此需要部署調度中心和執行器服務。

⑴ 調度中心端部署

將調度中心代碼編譯后,依據docker-maven-plugin依賴配置,打包成Docker鏡像后上傳到Harbor鏡像中心。在Rancher中新建服務配置該鏡像即可啟動調度中心,部署成功后訪問http://xxxx:8080/xxl-job-admin進入客戶端。

⑵ 執行項目端部署

每個任務只需要開發一個方法,并添加@XxlJob注解即可。同調度中心部署一致,將代碼編譯后打包成Docker鏡像,在Rancher中啟動之后,通過掃描@XxlJob將任務注入到容器中。

執行器部署成功之后,登錄調度中心客戶端,選擇對應服務的執行器并新建任務,任務的JobHandler名稱即為@XxlJob注解中的value所填的名稱。配置好之后,即可開始定時任務的使用。

3 XXL-JOB技術組件的應用

3.1 項目描述

工程數據管理平臺致力于統一各行業BIM模型標準與工程數據標準,系統地提升多類型、多格式數據管理能力,實現數據多方位管控,改善數據質量,使企業真正獲得工程數據管理能力。平臺系統提供了一站式數據服務。

⑴ 主數據管理:包括主數據標準管理、主數據管理、主數據校驗管理等。為工程項目提供約束定義,記錄工程數據的全生命周期。

⑵ 服務管理:對石塢實驗室發布的所有工程數據服務進行管理和分發,以服務的形式收集、校驗、分發和管理工程數據

⑶ 數據集成:提供快速靈活的數據集成方案,通過批量同步和在線同步兩種方式,把不同性質的數據有機地集成到數據管理平臺。

⑷ BIM標準:建立各行業BIM標準,提供BIM標準階段、構件分類、構件屬性及屬性校驗的管理功能,解決BIM模型的屬性缺失和錯誤問題。

⑸ 編碼管理:提供基于場景、元碼和元碼組編碼理論的通用編碼工具,可創建用于不同編碼規則、屬性管理及應用的編碼功能。

3.2 組件應用

XXL-JOB定時任務在工程數據管理平臺應用廣泛,為石塢實驗室提供了靈活的任務管理方式。依據微服務模塊可分為五大類,分別為系統管理模塊,云服務模塊,數據服務模塊,審計服務模塊,主數據校驗模塊。

各模塊定時任務功能應用如下。

⑴ 系統管理模塊:包括License證書臨過期提醒;判斷用戶密碼是否過期,并在過期前發送短信通知,并在密碼到期后禁止用戶登錄;判斷用戶賬號是否到期,并在到期前發送短信通知,并在賬戶到期后休眠用戶;將一年未登錄的用戶休眠;統計上一天的系統訪問量。

⑵ 云服務模塊:統計每天的接口調用總數;統計每五分鐘的接口調用總數。

⑶ 數據服務模塊:執行任務失效已過期的應用;統計每天所有服務的調用總次數;每天統計一次一個服務在所有應用下的訪問次數、正確率、平均響應時間;每5分鐘統計一次一個服務在所有應用下的累加訪問次數、正確率、平均響應時間;每小時統計一次接口并發峰值。

⑷ 審計服務模塊:審計日志達到設定預警值通知審計員;審計日志達到設定最高值通知審計員;根據設置備份周期自動備份用戶查看日志;根據設置備份周期自動刪除日志備份;根據設置周期刪除過期日志;審計日志按功能統計每小時折線圖數據統計;審計日志按等級統計每小時折線圖數據統計;審計日志按類型統計每小時折線圖數據統計;刪除三種統計圖昨天的記錄數據。

⑸ 主數據校驗模塊:主數據校驗每天校驗次數統計。

4 結束語

本文重點介紹了基于XXL-JOB的分布式定時任務的部署和應用的研究,并概述了在石塢實驗室項目上的實踐。通過使用了XXL-JOB定時任務,解決了單體定時任務的單點故障等問題,同時保證了系統的高可用性、伸縮性、負載均衡,并提高了容錯性。基于以上概述,可以看到XXL-JOB對任務的定時執行的穩定性,執行狀態的跟進追蹤有很大的提升,在很大程度上減少了開發人員的時間和精力,同時也為項目履約提供了進一步的技術保障。但同時由于所有的定時任務都需要在界面進行維護,對需要動態生成的定時任務則顯得無能為力,比如某采集功能,需要根據設定的執行周期動態生成定時任務,這些是接下來要解決的問題。

參考文獻(References):

[1] 孫巖.基于分布式架構的高可用定時任務調度系統的設計與實現[D]. 哈爾濱工業大學碩士論文,2018

[2] 分布式任務調度平臺XXL-JOB(xuxueli.com)

[3] ElasticJob-Distributed scheduled job solution (apache.org)

[4] http://www.quartz-scheduler.org/documentation/

[5] 蔡永健.基于Rancher的微服務部署[J].計算機時代,2021.6:1-4,8

主站蜘蛛池模板: 久久人人97超碰人人澡爱香蕉| 国产精品美女免费视频大全| 亚洲最黄视频| 波多野结衣一二三| 国产精品专区第1页| 亚洲无线视频| 国产精品专区第一页在线观看| 国产一级在线播放| 国产无码精品在线播放| 精品久久久久无码| 久久人人爽人人爽人人片aV东京热| 久久久精品久久久久三级| 丝袜美女被出水视频一区| 欧美福利在线| 二级毛片免费观看全程| 激情无码字幕综合| 456亚洲人成高清在线| 国产真实自在自线免费精品| 国产三级a| 一级爆乳无码av| 毛片免费观看视频| 四虎成人免费毛片| 国产在线91在线电影| 一边摸一边做爽的视频17国产 | 一级爱做片免费观看久久| 老司机午夜精品视频你懂的| 一本色道久久88综合日韩精品| 97se亚洲综合不卡 | 日本一区二区不卡视频| 亚洲天堂精品视频| 再看日本中文字幕在线观看| 日韩av无码DVD| 国产乱人伦AV在线A| 91精品国产91欠久久久久| 日韩av无码精品专区| 久久国产V一级毛多内射| 日韩区欧美国产区在线观看| av天堂最新版在线| 国产精品第一区在线观看| 国产靠逼视频| 91精品免费高清在线| 国产美女无遮挡免费视频| 国产AV无码专区亚洲精品网站| 国产成熟女人性满足视频| 免费jizz在线播放| 国产精品性| 欧美成人怡春院在线激情| 中文字幕有乳无码| 这里只有精品在线播放| 午夜国产精品视频黄| 美女无遮挡免费视频网站| 日韩美一区二区| 综合久久久久久久综合网| 国产欧美在线观看一区| 亚洲成人精品久久| 免费播放毛片| 激情五月婷婷综合网| 免费人成视网站在线不卡| 成人午夜免费观看| 国产精品色婷婷在线观看| 美女被操黄色视频网站| 国产欧美日韩另类精彩视频| 欧美高清日韩| 免费在线国产一区二区三区精品| 国产成人高清精品免费软件| 亚洲成人网在线播放| 88av在线看| 国产又色又刺激高潮免费看| 日韩欧美国产三级| 一级毛片免费不卡在线视频| 1级黄色毛片| 国产区福利小视频在线观看尤物| 91精品国产91欠久久久久| 亚洲视频免费播放| 狠狠v日韩v欧美v| 精品福利网| 国产精品第一区在线观看| 91丨九色丨首页在线播放| 欧美色图久久| 欧美色伊人| 一本综合久久| 国产最新无码专区在线|