摘要:分布式任務(wù)調(diào)度平臺(tái),美團(tuán)點(diǎn)評(píng)員工許雪里開(kāi)發(fā),其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速學(xué)習(xí)簡(jiǎn)單輕量級(jí)易擴(kuò)展。源碼地址二本文簡(jiǎn)介主要是利用成熟的部署工具,結(jié)合開(kāi)源的分布式任務(wù)調(diào)度框架作為工程,快速搭建自己的持續(xù)集成項(xiàng)目,其他項(xiàng)目可以類似構(gòu)建。
一、概述
1、自動(dòng)化部署能簡(jiǎn)化開(kāi)發(fā)過(guò)程的代碼管理,讓開(kāi)發(fā)人員把更多的時(shí)間專注于業(yè)務(wù)實(shí)現(xiàn), 簡(jiǎn)化繁瑣的上線流程和操作步驟,做到項(xiàng)目的快速打包和部署,減少人為操作中的失誤。 2、分布式任務(wù)調(diào)度平臺(tái),XXL-JOB:美團(tuán)點(diǎn)評(píng)員工許雪里開(kāi)發(fā), 其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、學(xué)習(xí)簡(jiǎn)單、輕量級(jí)、易擴(kuò)展。 現(xiàn)已開(kāi)放源代碼并接入多家公司線上產(chǎn)品線,開(kāi)箱即用。 源碼地址:https://github.com/xuxueli/xxl-job
二、本文簡(jiǎn)介
主要是利用成熟的CI部署工具Jenkins,結(jié)合開(kāi)源的分布式任務(wù)調(diào)度框架xxl-job作為demo工程,快速搭建自己的持續(xù)集成項(xiàng)目,其他項(xiàng)目可以類似構(gòu)建。
三、Jenkins部署和配置
1、安裝 1.1用特定版本的安裝包安裝 安裝包下載頁(yè): https://pkg.jenkins.io/redhat-stable/ (注意:會(huì)有一些安裝版本和jdk版本匹配的問(wèn)題,一般CentOS 6.5 安裝版本jenkins-2.7.4-1.1.noarch.rpm是OK的) 1.2、安裝最新版本: 按照文檔來(lái)就沒(méi)問(wèn)題: https://jenkins.io/doc/book/getting-started/installing/#unix-linux 1.3、啟動(dòng)和停止 sudo service jenkins start/stop/restart sudo chkconfig jenkins on
2、全局配置
2.1 全局配置:點(diǎn)擊系統(tǒng)管理,進(jìn)入Global Tool Configuration
2.2 配置常用環(huán)境變量
注意的點(diǎn):所有配置需要配置在全局環(huán)境變量里面,讓系統(tǒng)所有用戶都能訪問(wèn)到,比如說(shuō)maven,不能配置在特定的用戶目錄下,否則后面jenkins用戶就無(wú)法執(zhí)行mvn命令,而報(bào)錯(cuò)。
jdk:
git:
maven:
3、 項(xiàng)目配置
3.1、新建一個(gè)項(xiàng)目
點(diǎn)擊新建,新建一個(gè)自由風(fēng)格的軟件項(xiàng)目
3.2、項(xiàng)目源碼配置(使用git管理):
首先需要安裝插件: 系統(tǒng)管理-》管理插件,在可選插件里找到這個(gè),讓后直接安裝就可以
3.3、配置遠(yuǎn)程SSH
在系統(tǒng)管理-》系統(tǒng)設(shè)置里,找到Publish over SSH
4、構(gòu)建配置詳細(xì):
1、 General配置項(xiàng)目名稱和簡(jiǎn)介 2、源碼管理配置git項(xiàng)目地址 3、構(gòu)建觸發(fā)器配置遠(yuǎn)程構(gòu)建腳本 4、構(gòu)建環(huán)境配置項(xiàng)目構(gòu)建前需要執(zhí)行的一些腳本 5、構(gòu)建,配置構(gòu)建工具,比如maven打包,war包的上傳,執(zhí)行tomcat服務(wù)啟動(dòng)腳本 6、構(gòu)建后操作發(fā)布,構(gòu)建后的郵件發(fā)送等操作
4.1、簡(jiǎn)介和配置
4.2、 配置項(xiàng)目源碼地址和訪問(wèn)密碼
4.3、 配置Credentials
4.4、構(gòu)建環(huán)境
4.5、構(gòu)建 配置構(gòu)建命令 (這里的maven是前面全局環(huán)境變量中配置好的)
添加構(gòu)建后操作(需要前面安裝好遠(yuǎn)程ssh插件才行)
4.6、配置構(gòu)建后操作
其中:
Transfer SetSource files:表示要上傳的本地的war包及路徑,可到工作空間去看 Remove prefix:表示要上傳時(shí)要去除的文件夾,即只上傳war包 remote driectory:即表示執(zhí)行時(shí)的路徑,相當(dāng)于把war包上傳到這里了 exec commad:要執(zhí)行的命令,這里可以重命名jar包,啟動(dòng)tomcat服務(wù)器
7、構(gòu)建后操作:
8、回到配置主頁(yè),進(jìn)行構(gòu)建
9、進(jìn)入構(gòu)建控制臺(tái)查看構(gòu)建日志,如果有錯(cuò)誤,可以直接查看到
四、xxl-job的介紹
項(xiàng)目地址: https://github.com/xuxueli/xxl-job 概述: XXL-JOB是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度框架,其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、學(xué)習(xí)簡(jiǎn)單、輕量級(jí)、易擴(kuò)展。 現(xiàn)已開(kāi)放源代碼并接入多家公司線上產(chǎn)品線,開(kāi)箱即用。 特性: - 1、簡(jiǎn)單:支持通過(guò)Web頁(yè)面對(duì)任務(wù)進(jìn)行CRUD操作,操作簡(jiǎn)單,一分鐘上手; - 2、動(dòng)態(tài):支持動(dòng)態(tài)修改任務(wù)狀態(tài)、暫停/恢復(fù)任務(wù),以及終止運(yùn)行中任務(wù),即時(shí)生效; - 3、調(diào)度中心HA(中心式):調(diào)度采用中心式設(shè)計(jì),“調(diào)度中心”基于集群Quartz實(shí)現(xiàn),可保證調(diào)度中心HA; - 4、執(zhí)行器HA(分布式):任務(wù)分布式執(zhí)行,任務(wù)"執(zhí)行器"支持集群部署,可保證任務(wù)執(zhí)行HA; - 5、任務(wù)Failover:執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇"故障轉(zhuǎn)移"情況下調(diào)度失敗時(shí)將會(huì)平滑切換執(zhí)行器進(jìn)行Failover; - 6、一致性:“調(diào)度中心”通過(guò)DB鎖保證集群分布式調(diào)度的一致性, 一次任務(wù)調(diào)度只會(huì)觸發(fā)一次執(zhí)行; - 7、自定義任務(wù)參數(shù):支持在線配置調(diào)度任務(wù)入?yún)ⅲ磿r(shí)生效; - 8、調(diào)度線程池:調(diào)度系統(tǒng)多線程觸發(fā)調(diào)度運(yùn)行,確保調(diào)度精確執(zhí)行,不被堵塞; - 9、彈性擴(kuò)容縮容:一旦有新執(zhí)行器機(jī)器上線或者下線,下次調(diào)度時(shí)將會(huì)重新分配任務(wù); - 10、郵件報(bào)警:任務(wù)失敗時(shí)支持郵件報(bào)警,支持配置多郵件地址群發(fā)報(bào)警郵件; - 11、狀態(tài)監(jiān)控:支持實(shí)時(shí)監(jiān)控任務(wù)進(jìn)度; - 12、Rolling執(zhí)行日志:支持在線查看調(diào)度結(jié)果,并且支持以Rolling方式實(shí)時(shí)查看執(zhí)行器輸出的完整的執(zhí)行日志; - 13、GLUE:提供Web IDE,支持在線開(kāi)發(fā)任務(wù)邏輯代碼,動(dòng)態(tài)發(fā)布,實(shí)時(shí)編譯生效,省略部署上線的過(guò)程。支持30個(gè)版本的歷史版本回溯。 - 14、數(shù)據(jù)加密:調(diào)度中心和執(zhí)行器之間的通訊進(jìn)行數(shù)據(jù)加密,提升調(diào)度信息安全性; - 15、任務(wù)依賴:支持配置子任務(wù)依賴,當(dāng)父任務(wù)執(zhí)行結(jié)束且執(zhí)行成功后將會(huì)主動(dòng)觸發(fā)一次子任務(wù)的執(zhí)行, 多個(gè)子任務(wù)用逗號(hào)分隔; - 16、推送maven中央倉(cāng)庫(kù): 將會(huì)把最新穩(wěn)定版推送到maven中央倉(cāng)庫(kù), 方便用戶接入和使用; - 17、任務(wù)注冊(cè): 執(zhí)行器會(huì)周期性自動(dòng)注冊(cè)任務(wù), 調(diào)度中心將會(huì)自動(dòng)發(fā)現(xiàn)注冊(cè)的任務(wù)并觸發(fā)執(zhí)行。同時(shí),也支持手動(dòng)錄入執(zhí)行器地址; - 18、路由策略:執(zhí)行器集群部署時(shí)提供豐富的路由策略,包括:第一個(gè)、最后一個(gè)、輪詢、隨機(jī)、一致性HASH、最不經(jīng)常使用、最近最久未使用、故障轉(zhuǎn)移; - 19、運(yùn)行報(bào)表:支持實(shí)時(shí)查看運(yùn)行數(shù)據(jù),如任務(wù)數(shù)量、調(diào)度次數(shù)、執(zhí)行器數(shù)量等;以及調(diào)度報(bào)表,如調(diào)度日期分布圖,調(diào)度成功分布圖等; - 20、腳本任務(wù):支持以GLUE模式開(kāi)發(fā)和運(yùn)行腳本任務(wù),包括Shell、Python等類型腳本; - 21、阻塞處理策略:調(diào)度過(guò)于密集執(zhí)行器來(lái)不及處理時(shí)的處理策略,策略包括:?jiǎn)螜C(jī)串行(默認(rèn))、丟棄后續(xù)調(diào)度、覆蓋之前調(diào)度; - 22、失敗處理策略;調(diào)度失敗時(shí)的處理策略,策略包括:失敗告警(默認(rèn))、失敗重試;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67464.html
摘要:版本特性國(guó)際化調(diào)度中心實(shí)現(xiàn)國(guó)際化,支持中文英文兩種語(yǔ)言,默認(rèn)為中文。調(diào)度中心提供觸發(fā)任務(wù)單次執(zhí)行的服務(wù),可根據(jù)業(yè)務(wù)事件靈活觸發(fā)。 版本 V1.9.1 特性 1、國(guó)際化:調(diào)度中心實(shí)現(xiàn)國(guó)際化,支持中文、英文兩種語(yǔ)言,默認(rèn)為中文。 2、調(diào)度報(bào)表新增運(yùn)行中中狀態(tài)項(xiàng); 3、調(diào)度報(bào)表優(yōu)化,報(bào)表SQL調(diào)優(yōu)并且新增LocalCache緩存(緩存時(shí)間60s),提高大數(shù)據(jù)量下報(bào)表加載速度; 4、修復(fù)打包...
摘要:底層通訊方案優(yōu)化升級(jí)較新版本,由方案調(diào)整為方案,執(zhí)行器內(nèi)嵌提供服務(wù),調(diào)度中心復(fù)用容器端口提供服務(wù)任務(wù)告警邏輯調(diào)整,改為通過(guò)掃描失敗日志方式觸發(fā)。 v2.0.2 Release Notes 1、底層通訊方案優(yōu)化:升級(jí)較新版本xxl-rpc,由JETTY方案調(diào)整為NETTY_HTTP方案,執(zhí)行器內(nèi)嵌netty-http-server提供服務(wù),調(diào)度中心復(fù)用容器端口提供服務(wù); 2、任務(wù)告警邏...
摘要:自研調(diào)度組件,移除依賴一方面是為了精簡(jiǎn)系統(tǒng)降低冗余依賴,另一方面是為了提供系統(tǒng)的可控度與穩(wěn)定性觸發(fā)單節(jié)點(diǎn)周期性觸發(fā),運(yùn)行事件如調(diào)度集群競(jìng)爭(zhēng),負(fù)載方式協(xié)同處理,鎖競(jìng)爭(zhēng)更新觸發(fā)信息推送時(shí)間輪鎖釋放鎖競(jìng)爭(zhēng)底層表結(jié)構(gòu)重構(gòu)移除張相關(guān)表,并對(duì)現(xiàn) v2.0.2 Release Notes 1、自研調(diào)度組件,移除quartz依賴:一方面是為了精簡(jiǎn)系統(tǒng)降低冗余依賴,另一方面是為了提供系統(tǒng)的可控度與穩(wěn)...
v2.0.0 Release Notes 1、調(diào)度中心遷移到 springboot; 2、底層通訊組件遷移至 xxl-rpc; 3、容器化:提供官方docker鏡像,并實(shí)時(shí)更新推送dockerhub(docker pull xuxueli/xxl-job-admin),進(jìn)一步實(shí)現(xiàn)產(chǎn)品開(kāi)箱即用; 4、新增無(wú)框架執(zhí)行器Sample示例項(xiàng)目 xxl-job-executor-sample-framel...
閱讀 1699·2021-11-12 10:36
閱讀 1615·2021-11-12 10:36
閱讀 3441·2021-11-02 14:46
閱讀 3798·2019-08-30 15:56
閱讀 3533·2019-08-30 15:55
閱讀 1462·2019-08-30 15:44
閱讀 1043·2019-08-30 14:00
閱讀 2735·2019-08-29 18:41