中小型公司首選!分布式調度系統XXL-JOB安裝和簡單使用

2020-12-24 探險家之指路明燈

這篇文章,就來介紹一下xxl-job 的安裝和簡單使用。

這裡安裝是基於 Ubuntu 16.04 安裝的。

我看了一下 GitHub 上開源的分布式調度系統,目前是 xxl-job 項目是分布式調度開源系統中最多 starts 的(當然也有可能因為這個 xxl-job 出來挺久了)

window ,mac 或docker 安裝

如果為 window,mac 等安裝,可以先根據github 上的 SQL 腳本創建好資料庫和表,然後直接將github 上的源碼 導入到 idea 按照Spring Boot 應用來啟動即可。

如果為 docker 的安裝,可以直接pull 官方鏡像,然後運行時指定 MySQL 和存儲日誌目錄即可。

下載鏡像

# Docker地址:https://hub.docker.com/r/xuxueli/xxl-job-admin/ (建議指定版本號)docker pull xuxueli/xxl-job-admin創建容器並運行

# 如需自定義 mysql 等配置,可通過 "-e PARAMS" 指定,參數格式 PARAMS="--key=value --key2=value2" ;# 配置項參考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties# 如需自定義 JVM內存參數 等配置,可通過 "-e JAVA_OPTS" 指定,參數格式 JAVA_OPTS="-Xmx512m" ;docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}linux Ubuntu 16.04 安裝 xxl-job

在linux下直接安裝 xxl-job 會有點麻煩, 因為 xxl-job 並沒有像 nacos 之類的直接提供了一個啟動包,直接修改一下配置文件,然後運行啟動腳本即可那種。xxl-job 是只提供了的源碼文件,如果要運行,需要自己先將 java 源碼 通過 maven 打包構建成運行包,然後才能運行。所以接下來我來詳細講述一下如何在linux 下安裝啟動 xxl-job,這裡使用的 linux 版本為:Ubuntu 16.04。 其他版本也類似。

安裝 jdk ,maven ,git 環境

首先我們先需要安裝 Java 相關的環境,因為xxl-job 是 Java 開發的,在沒有提供啟動包的基礎上,我們需要自己從源碼解釋編譯成啟動包,然後啟動。

安裝 JDK

安裝有兩種一種是直接根據 apt 的包安裝,另一種是手動獲取 java 包安裝。這裡我們為了簡單起見使用 apt 直接安裝,如果需要更多自定義的配置可以手動安裝。執行運行以下兩個命令即可安裝 jdk8 版本的。

sudo apt-get updatesudo apt-get install openjdk-8-jdk -y參考:Ubuntu 16.04安裝Java JDK8

安裝 maven

我們這裡也直接採用 apt 包的安裝

sudo apt-get -y update sudo apt install maven -y待安裝完成之後,運行

mvn -v即可檢查是否安裝成功了

這裡安裝了 maven 之後還需要將 maven 的默認的遠程倉庫地址換成 國內的遠程倉庫地址,不然下載 maven 依賴的時候會很慢。打開 /etc/maven/settings.xml 文件,在 標籤裡面添加以下內容,即可將默認倉庫替換成阿里雲的倉庫。

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>安裝 GIT

我們這裡還需要安裝 GIT ,主要是為了可以方便複製源碼到本機,當然也可以通過直接 curl 獲取到文件,然後解壓。不過 git 總是有用,所以我們這裡也安裝了

sudo apt-get -y updatesudo apt-get install git -y 安裝資料庫

初始化資料庫的腳步為xxl-job的git 項目中的 /xxl-job/doc/db/tables_xxl_job.sql的文件,在已經安裝了 MySQL 的機器上連接上,然後執行即可

默認xxl-job 是支持集群部署的,只要連接相同的資料庫即可

另外如果 MySQL 有做主從部署,則 xxl-job 連接的一定要為主庫,也不能使用讀寫分離的帳號,否則在調度的時候可能會出現問題

git clone 源碼文件,打包構建

git clone https://gitee.com/xuxueli0323/xxl-job.gitcd xxl-job/mvn -B -Dmaven.test.skip=true clean packagecd xxl-job-admin/target# 這裡 根據不同的xxl-job的版本,文件名不一樣unzip xxl-job-admin-2.3.0-SNAPSHOT.jar# 解壓之後,進入BOOT-INT/target/class/ 目錄即可看到調度中心的配置文件 `application.properties`,修改裡面的資料庫連結和密碼即可,如果考慮調度系統的調用的安全性可以加上, xxl.job.accessToken= 參數# 修改完成之後,然後進入到 /xxl-job/xxl-job-admin/target 目錄下執行以下命令來啟動 xxl-job /usr/local/java/bin/java -classpath ./:./lib/* org.springframework.boot.loader.JarLauncher &執行之後,如果啟動成功會顯示如下圖這樣

然後打開連結: http://127.0.0.1:8080/xxl-job-admin (該地址執行器將會使用到,作為回調地址)

輸入默認的帳號和密碼, 「admin/123456」,登錄即可看到調度中心。(需要將127.0.0.1 換成自己的機器的ip)

安裝執行器項目

安裝完成調度中心之後,我們還需要安裝執行器項目,調度中心本身是不負責執行項目,要安裝執行器之後,才能通過調度中心去執行器服務上執行。安裝執行器項目很簡單,基本上就是安裝調度中心那樣安裝啟動即可,我們這裡為了簡單起見,可以直接啟動 xxl-job 自帶Spring Boot的簡單執行器。基於上面克隆下來的項目,我們進入 /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target 目錄。如果要修改調度中心的地址的信息、調度中心的驗證的key等,可以修改配置文件,該執行器的配置文件為 /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/BOOT-INF/classes/application.properties。

然後執行以下命令即可啟動執行器項目:

/usr/local/java/bin/java -classpath ./:./lib/* org.springframework.boot.loader.JarLauncher &簡單使用 xxl-job

經過上面的步驟,我們就有一個簡單的調度中心系統了。基於這個調度系統,我們可以隨便創建調度任務。這裡我示範一個創建一個每分鐘定時請求 http://t.weather.itboy.net/api/weather/city/101280101 連結獲取廣州天氣的任務。參考:免費天氣API,天氣JSON API,不限次數獲取十五天的天氣預報

登錄進入任務管理頁面新建任務

訪問,http://127.0.0.1:8080/xxl-job-admin ,輸入 admin/123456 。登錄上面我們搭建成功的xxl-job的分布式調度系統。然後進入"任務管理" 頁面,進行新建任務,

填寫任務的基本信息

這裡填寫的是調度任務的基本信息,例如:任務失敗的時候重試的次數,該任務的負責人、應該依賴的上一個任務id。

在彈出的新建任務的窗口,按照如下填寫:

編輯任務的具體執行的內容

我們可以通過xxl-job 自帶的 IDE 來編輯我們需要運行的shell腳本。

按照上面填寫好任務的基本信息後,我們接著來編輯要執行的任務腳本,

啟動任務並查詢執行記錄

點擊保存,然後返回任務列表,啟動該任務。然後就可以到"調度日誌"頁面,查看該任務的執行記錄了,點擊具體運行的某個實例的「查看日誌」能看到該實例執行記錄的詳細日誌信息。

總結

本篇文章介紹了分布式調度任務系統 xxl-job 的安裝 和簡單使用。其實整篇下來,我覺得挺水的;算作當做自己記錄一下吧,這個分布式調度系統的,其實功能挺簡單的,如果運行比較少的任務的會比較輕鬆和容易上手。不過如果要運行一些複雜的任務,特別是包含一些例如,按小時匯總到天 然後觸發依賴 之類邏輯較多的依賴或者是想延遲執行、指定重跑某個數據時間的實例 等等複雜邏輯,就比較困難了。另外這個分布式開源的調度系統的任務實例界面和任務管理界面的交互並不是很好,都是展示成列表的形式。如果把任務實例界面修改為按照單元格日期 這樣來選擇會比較好些。因為我們公司也有類似這樣的分布式調度系統,不過我們公司的由於業務比較複雜,所以我們的分布式調度任務系統的功能比較多,相對於 xxl-job 有一定優勢,但是也有挺多缺點的。

總而言之,對於絕大部分中小公司的調度任務或者是比較簡單的調度任務用xxl-job 是完全沒有問題的。如果是要作為企業級系統來使用估計還需要基於 xxl-job 來修改挺多模塊的。

原文連結:https://www.cnblogs.com/kanlon2015/p/14170299.html

如果覺得本文對你有幫助,可以轉發關注支持一下

相關焦點

  • 分布式測試系統建設
    如果使用單臺機器,可能需要幾個小時的時間才能完成一次所有用例的運行。這裡我們能想到的最直接的方法,就是增加機器資源,並行運行測試用例。我們首先使用的方法是,在jenkins中將運行時間長的模塊的功能測試job,拆分為多個可並行執行的job。
  • 這些常用ETL批量任務調度平臺框架組件,你都知道幾個?
    Cron-like Scheduler1.1 Python任務調度框架 APScheduler一個基於Python,提供類似Cron功能,並深受Java Quartz 影響的輕量級進程內任務調度框架。APScheduler provides most of the major features that Quartz does, but it also provides features not present in Quartz (such as multiple job stores).
  • win7配置要求和簡單安裝方法介紹【圖文教程】
    隨著微軟公司對window XP系統的停止更新,越來越多的消費者開始為自己的系統安裝windows7系統。然而很多使用window xp升級windows7系統的用戶的電腦都是有一定年齡的了,在更新windows7之前,我們如何知道自己電腦的硬體配置方面是否有達到微軟提供的最低要求嗎?能否成功的安裝呢。
  • 分布式事務淺析及簡單實現
    作者:翟飛在分布式系統中,為了保證數據的高可用,通常,我們會將數據保留多個副本(replica),這些副本會放置在不同的物理的機器上。為了對用戶提供正確的 CRUD 等語義,我們需要保證這些放置在不同物理機器上的副本是一致的。分布式事務在現在遍地都是分布式部署的系統中幾乎是必要的。
  • xxl是多大號,xxl是多大尺碼,xxl是多少尺寸?
    xxl是多大號,xxl是多大尺碼,xxl是多少尺寸? 2011-08-26 15:04:22 來源:網上輕紡城 xxl是多大號,xxl是多大尺碼,xxl是多少尺寸?
  • XSKY分布式存儲助力運營商關鍵業務系統
    運營商加碼分布式架構以往,運營商IT系統優先選擇小型機、各種高端伺服器、磁碟陣列以及大型商業資料庫等進行構建。在這種技術體系下,IT系統整體架構複雜,煙囪式架構導致信息割裂,各系統間數據不能互通和共享,存在著諸如橫向擴容困難、資源綜合利用效率低、維護成本高等顯著弊端。
  • Apache DolphinScheduler 1.2.0 發布,分布式可視化工作流任務調度...
    bug 具體請參加本次發版說明特別感謝為本次發版做出突出貢獻的50多位社區貢獻者 Dolphin Scheduler for Big Data設計特點: 一個分布式易擴展的可視化DAG工作流任務調度系統。
  • 杭州中小型企業辦公室設計裝修|專業辦公空間裝修公司|簡單出彩
    很多中小型企業的資金不如大企業充足,在選擇辦公室的時候,空間也不需要很大,但是辦公室的裝修設計仍然是對於企業來說重要的事情,那麼今天就和裝修公司一起來看看杭州中小型企業辦公室的設計裝修吧!杭州中小型企業辦公室設計裝修杭州中小型企業辦公室設計裝修要突顯企業文化。
  • 分布式微服務架構成確定性趨勢 撬動銀行新一輪IT改造
    近期,六大國有銀行之一的中國郵政儲蓄銀行(以下簡稱「郵儲銀行(601658)」)正在基於分布式架構建設新一代核心系統,用於超大量核心交易。其他中小型股份制銀行、城商行,如民生銀行、張家口農商行的分布式架構已經替代了集中式架構,正穩定運行。
  • 分布式機器學習的參數伺服器
    大型網際網路規模的公司用tb或pb的數據進行訓練,並從中創建模型。這些模型由權重組成,這些權重將優化大多數情況下的推理誤差。權重/參數的數量以數十億至數萬億的順序排列。在這樣大的模型中,在一臺機器上學習和推理都是不可能的。有一個可以用於分布式學習和推理的框架是很有用的。由於參數需要在多個節點之間共享,然後使用這些節點執行和完善它們的計算來更新它們,所以當涉及到共享時,這些大量數據可能成為瓶頸。
  • 分布式跟蹤系統的四大功能模塊如何協同工作
    了解分布式跟蹤中的主要體系結構決策,以及各部分如何組合在一起。早在十年前,認真研究過分布式跟蹤基本上只有學者和一小部分大型網際網路公司中的人。一些監控和跟蹤分析系統使用黑盒代理black-box agents自動檢測代碼,另一些系統更想使用顯式的白盒檢測工具。對於後者,抽象跟蹤 API 提供了許多對於微服務的應用程式代碼來說更為實用的優勢: 抽象 API 允許你在不重新編寫檢測代碼的條件下換新的監視工具。
  • 床長人工智慧教程免費分享——分布式系統 in 2010s
    舉個簡單的例子,分布式事務最簡單的兩階段提交算法,對於來說,需要你定義好初始狀態例如事務要操作的有幾個並發客戶端等,然後定義狀態間跳轉的操作等,最後定義不變量例如任何處於狀態的一定是按照排序的,或者的操作一定不會讀到髒數據之類的,寫完以後放到裡面運行,等待結果就好。但是,我們活在一個不完美的世界,即使你寫出了完美的證明,也很難保證你就是對的。
  • 13張圖搞懂分布式系統服務註冊與發現原理
    引入服務註冊與發現組件的原因先來看一個問題,假如現在我們要做一個商城項目,作為架構師的你應該怎樣設計系統的架構?你心裡肯定在想:這還不容易直接照搬淘寶的架構不就行了。但在現實的創業環境中一個項目可能是九死一生,如果一開始投入巨大的人力和財力,一旦項目失敗損失就很大。作為一位有經驗的架構師需要結合公司財力、人力投入預算等現狀選擇最適合眼下的架構才是王道。
  • 光纖分布式振動檢測系統
    基於φ-OTDR原理的分布式光纖振動傳感技術以其分布式、長距離、可定位的獨特優勢,加上光纖傳感技術自身的抗電磁幹擾、功耗小、布設靈活、成本較低等優勢,特別適用於重點區域周界安防、油氣管道防盜挖監測、通信鏈路安全預警等應用領域。   基於上述需求和優勢,長飛公司開發出光纖分布式振動傳感系統(DVS),並在上述領域得到廣泛應用。
  • ip調度交換機商家促銷 ip多媒體調度系統
    應市場需求,我們開發並生產出ip調度交換機,ip多媒體調度系統打破傳統程控調度交換機功能, 為了方便用戶提出的功能需求,可以實現二次開發。ip調度交換機可支持電話會議。其優點有: 可以設置異地調度機,把車間、倉庫、辦公室和財務室等地方,實現遠程調度、監控;也可用於開電話會議和視頻會議等。
  • 完美的分布式監控系統——普羅米修斯
    Prometheus於2012年由SoundCloud創建,目前已經已發展為最熱門的分布式監控系統。Prometheus完全開源的,被很多雲廠商(架構)內置,在這些廠商(架構)中,可以簡單部署Prometheus,用來監控整個雲基礎架構設施。比如DigitalOcean或Docker都是普羅米修斯作為基礎監控。
  • 學術簡報︱含分布式光伏接入的輻射型配電網快速潮流計算
    輸配電裝備及系統安全與新技術國家重點實驗室(重慶大學)的研究人員李海嘯、周林,在2019年第19期《電工技術學報》上撰文,針對含分布式光伏接入的輻射型配電網,結合光伏本地無功-電壓控制策略,提出一種快速潮流計算方法。該方法具有簡明的線性表達式,能夠直接進行潮流近似求解。通過壓縮映射定理和矩陣理論,論證了利用該方法所求得的潮流解為系統實際運行的可行解。
  • 什麼魔力讓Drift相機成為維締技術的首選
    ,我們的生活、工作等方方面面都依託聯網完成,極簡的設備操作方式輔以強大的雲端數據處理系統,讓我們的工作效率得到了前所未有的提升,而每一次效率的提升,都為企業帶來了豐厚的回報,這也就是為什麼眾多企業一直孜孜不倦地尋找通過科技提升效率的方式和方法。
  • 大數據學習環境搭建系列(二)虛擬機軟體Vmware的安裝
    作者 | CDA數據分析師概述在進行分布式架構的學習前,首先需進行基礎環境準備。眾所周知,在單機運算能力無法滿足處理海量數據的運算能力時,人們普遍開始考慮使用分布式運算來代替單機運算,這也成為了大數據分析和小數據分析最顯著的區別之一,即使用的工具不同。