• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于XXL-JOB的分布式定時(shí)任務(wù)研究和應(yīng)用

      2022-06-21 01:14:24鄭祥,顧丹鵬,陳肖勇
      計(jì)算機(jī)時(shí)代 2022年6期
      關(guān)鍵詞:微服務(wù)分布式

      鄭祥,顧丹鵬,陳肖勇

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

      關(guān)鍵詞: 微服務(wù); 分布式; 定時(shí)任務(wù); XXL-JOB

      中圖分類號(hào):TP399? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):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 引言

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

      1 分布式定時(shí)任務(wù)對(duì)比

      1.1 XXL-JOB簡介

      XXL-JOB將調(diào)度行為抽象形成“調(diào)度中心”公共平臺(tái),而平臺(tái)自身并不承擔(dān)業(yè)務(wù)邏輯,“調(diào)度中心”負(fù)責(zé)發(fā)起調(diào)度請(qǐng)求[2]。將任務(wù)抽象成分散的Job Handler,交由“執(zhí)行器”統(tǒng)一管理,“執(zhí)行器”負(fù)責(zé)接收調(diào)度請(qǐng)求并執(zhí)行對(duì)應(yīng)的Job Handler中業(yè)務(wù)邏輯。因此,“調(diào)度”和“任務(wù)”兩部分可以相互解耦,提高系統(tǒng)整體穩(wěn)定性和擴(kuò)展性。

      1.2 Elastic-JOB簡介

      Elastic-JOB是面向互聯(lián)網(wǎng)生態(tài)和海量任務(wù)的分布式調(diào)度解決方案,由兩個(gè)相互獨(dú)立的子項(xiàng)目ElasticJob-Lite和ElasticJob-Cloud組成。它通過彈性調(diào)度、資源管控,以及作業(yè)治理的功能,打造一個(gè)適用于互聯(lián)網(wǎng)場(chǎng)景的分布式調(diào)度解決方案,并通過開放的架構(gòu)設(shè)計(jì),提供多元化的作業(yè)生態(tài)[3]。

      1.3 Quartz簡介

      Quartz是一個(gè)功能豐富的開源作業(yè)調(diào)度庫,可以用于創(chuàng)建簡單或復(fù)雜的調(diào)度,以執(zhí)行數(shù)十個(gè)、數(shù)百個(gè)甚至數(shù)萬個(gè)作業(yè);其任務(wù)被定義為標(biāo)準(zhǔn)Java組件的作業(yè),可以執(zhí)行幾乎任何可以對(duì)其進(jìn)行編程的操作。Quartz調(diào)度器包括許多企業(yè)級(jí)特性,例如對(duì)JTA事務(wù)和集群的支持[4]。

      上述三種定時(shí)任務(wù)框架的整體比較如表1所示。

      2 XXL-JOB部署方案研究

      2.1 部署方案的選擇

      隨著微服務(wù)架構(gòu)逐漸成為主流架構(gòu)風(fēng)格。同時(shí),伴隨著Docker容器技術(shù)的發(fā)展,特別是各種Kubernetes系列開源產(chǎn)品的成熟化,使得微服務(wù)落地成為現(xiàn)實(shí)。工程數(shù)據(jù)管理平臺(tái)基于Rancher容器平臺(tái)給出了一種部署微服務(wù)系統(tǒng)的解決方案,并在石塢實(shí)驗(yàn)室項(xiàng)目開發(fā)環(huán)境實(shí)現(xiàn)了微服務(wù)的整體部署[5]。

      基于Rancher的Docker鏡像部署方式由于直接運(yùn)行于宿主內(nèi)核,無需啟動(dòng)完整的操作系統(tǒng),因此可以做到秒級(jí),甚至毫秒級(jí)的啟動(dòng)時(shí)間,大大的節(jié)約了開發(fā)測(cè)試部署的時(shí)間。而且Docker對(duì)系統(tǒng)資源的利用率較高,無論是應(yīng)用執(zhí)行速度,內(nèi)存損耗或文件存儲(chǔ)速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。因此此次部署也采用基于Rancher的Docker鏡像部署方式。

      2.2 部署流程

      XXL-JOB將調(diào)度和任務(wù)剝離解耦,分為調(diào)度中心和執(zhí)行器,因此需要部署調(diào)度中心和執(zhí)行器服務(wù)。

      ⑴ 調(diào)度中心端部署

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

      ⑵ 執(zhí)行項(xiàng)目端部署

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

      執(zhí)行器部署成功之后,登錄調(diào)度中心客戶端,選擇對(duì)應(yīng)服務(wù)的執(zhí)行器并新建任務(wù),任務(wù)的JobHandler名稱即為@XxlJob注解中的value所填的名稱。配置好之后,即可開始定時(shí)任務(wù)的使用。

      3 XXL-JOB技術(shù)組件的應(yīng)用

      3.1 項(xiàng)目描述

      工程數(shù)據(jù)管理平臺(tái)致力于統(tǒng)一各行業(yè)BIM模型標(biāo)準(zhǔn)與工程數(shù)據(jù)標(biāo)準(zhǔn),系統(tǒng)地提升多類型、多格式數(shù)據(jù)管理能力,實(shí)現(xiàn)數(shù)據(jù)多方位管控,改善數(shù)據(jù)質(zhì)量,使企業(yè)真正獲得工程數(shù)據(jù)管理能力。平臺(tái)系統(tǒng)提供了一站式數(shù)據(jù)服務(wù)。

      ⑴ 主數(shù)據(jù)管理:包括主數(shù)據(jù)標(biāo)準(zhǔn)管理、主數(shù)據(jù)管理、主數(shù)據(jù)校驗(yàn)管理等。為工程項(xiàng)目提供約束定義,記錄工程數(shù)據(jù)的全生命周期。

      ⑵ 服務(wù)管理:對(duì)石塢實(shí)驗(yàn)室發(fā)布的所有工程數(shù)據(jù)服務(wù)進(jìn)行管理和分發(fā),以服務(wù)的形式收集、校驗(yàn)、分發(fā)和管理工程數(shù)據(jù)

      ⑶ 數(shù)據(jù)集成:提供快速靈活的數(shù)據(jù)集成方案,通過批量同步和在線同步兩種方式,把不同性質(zhì)的數(shù)據(jù)有機(jī)地集成到數(shù)據(jù)管理平臺(tái)。

      ⑷ BIM標(biāo)準(zhǔn):建立各行業(yè)BIM標(biāo)準(zhǔn),提供BIM標(biāo)準(zhǔn)階段、構(gòu)件分類、構(gòu)件屬性及屬性校驗(yàn)的管理功能,解決BIM模型的屬性缺失和錯(cuò)誤問題。

      ⑸ 編碼管理:提供基于場(chǎng)景、元碼和元碼組編碼理論的通用編碼工具,可創(chuàng)建用于不同編碼規(guī)則、屬性管理及應(yīng)用的編碼功能。

      3.2 組件應(yīng)用

      XXL-JOB定時(shí)任務(wù)在工程數(shù)據(jù)管理平臺(tái)應(yīng)用廣泛,為石塢實(shí)驗(yàn)室提供了靈活的任務(wù)管理方式。依據(jù)微服務(wù)模塊可分為五大類,分別為系統(tǒng)管理模塊,云服務(wù)模塊,數(shù)據(jù)服務(wù)模塊,審計(jì)服務(wù)模塊,主數(shù)據(jù)校驗(yàn)?zāi)K。

      各模塊定時(shí)任務(wù)功能應(yīng)用如下。

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

      ⑵ 云服務(wù)模塊:統(tǒng)計(jì)每天的接口調(diào)用總數(shù);統(tǒng)計(jì)每五分鐘的接口調(diào)用總數(shù)。

      ⑶ 數(shù)據(jù)服務(wù)模塊:執(zhí)行任務(wù)失效已過期的應(yīng)用;統(tǒng)計(jì)每天所有服務(wù)的調(diào)用總次數(shù);每天統(tǒng)計(jì)一次一個(gè)服務(wù)在所有應(yīng)用下的訪問次數(shù)、正確率、平均響應(yīng)時(shí)間;每5分鐘統(tǒng)計(jì)一次一個(gè)服務(wù)在所有應(yīng)用下的累加訪問次數(shù)、正確率、平均響應(yīng)時(shí)間;每小時(shí)統(tǒng)計(jì)一次接口并發(fā)峰值。

      ⑷ 審計(jì)服務(wù)模塊:審計(jì)日志達(dá)到設(shè)定預(yù)警值通知審計(jì)員;審計(jì)日志達(dá)到設(shè)定最高值通知審計(jì)員;根據(jù)設(shè)置備份周期自動(dòng)備份用戶查看日志;根據(jù)設(shè)置備份周期自動(dòng)刪除日志備份;根據(jù)設(shè)置周期刪除過期日志;審計(jì)日志按功能統(tǒng)計(jì)每小時(shí)折線圖數(shù)據(jù)統(tǒng)計(jì);審計(jì)日志按等級(jí)統(tǒng)計(jì)每小時(shí)折線圖數(shù)據(jù)統(tǒng)計(jì);審計(jì)日志按類型統(tǒng)計(jì)每小時(shí)折線圖數(shù)據(jù)統(tǒng)計(jì);刪除三種統(tǒng)計(jì)圖昨天的記錄數(shù)據(jù)。

      ⑸ 主數(shù)據(jù)校驗(yàn)?zāi)K:主數(shù)據(jù)校驗(yàn)每天校驗(yàn)次數(shù)統(tǒng)計(jì)。

      4 結(jié)束語

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

      參考文獻(xiàn)(References):

      [1] 孫巖.基于分布式架構(gòu)的高可用定時(shí)任務(wù)調(diào)度系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 哈爾濱工業(yè)大學(xué)碩士論文,2018

      [2] 分布式任務(wù)調(diào)度平臺(tái)XXL-JOB(xuxueli.com)

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

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

      [5] 蔡永健.基于Rancher的微服務(wù)部署[J].計(jì)算機(jī)時(shí)代,2021.6:1-4,8

      猜你喜歡
      微服務(wù)分布式
      分布式光伏發(fā)展的四大矛盾
      能源(2017年7期)2018-01-19 05:05:03
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      基于供給側(cè)改革理論的圖書館社交網(wǎng)絡(luò)微服務(wù)研究
      微信公眾平臺(tái)在醫(yī)院圖書館的應(yīng)用現(xiàn)狀調(diào)查
      基于微信企業(yè)號(hào)的校園移動(dòng)服務(wù)
      微服務(wù)視角下高職圖書館數(shù)字資源使用分析
      中文信息(2016年10期)2016-12-12 10:09:57
      從單一模式系統(tǒng)架構(gòu)往微服務(wù)架構(gòu)遷移轉(zhuǎn)化技術(shù)研究
      基于微信公眾平臺(tái)的高校圖書館微服務(wù)現(xiàn)狀及對(duì)策
      抚顺市| 孟州市| 克东县| 河南省| 宕昌县| 沙田区| 梨树县| 旌德县| 武鸣县| 孟津县| 浙江省| 兴安县| 于田县| 奎屯市| 新平| 西青区| 洛川县| 遂平县| 南宁市| 望奎县| 濉溪县| 武义县| 仙游县| 建阳市| 娄烦县| 教育| 马龙县| 廉江市| 广丰县| 桦甸市| 张家川| 招远市| 石家庄市| 蒲城县| 怀化市| 视频| 湖南省| 五原县| 浏阳市| 开鲁县| 蒙自县|