分散式任務調度平臺XXL-JOB安裝及使用

来源:https://www.cnblogs.com/baoruizhe/archive/2022/04/22/16178618.html
-Advertisement-
Play Games

《零基礎學Java》 資料庫操作 資料庫基礎 資料庫是一種存儲結構,允許使用各種格式 輸入、處理、檢索 數據,且不用在每次需要數據時重新輸入數據。 select 語句: select語句用於查詢數據表中的數據。 select 語句 語法: select 所選欄位列表 from 數據表名 where ...


一、為什麼需要任務調度平臺

在Java中,傳統的定時任務實現方案,比如Timer,Quartz等都或多或少存在一些問題:

  • 不支持集群、不支持統計、沒有管理平臺、沒有失敗報警、沒有監控等等而且在現在分散式的架構中,有一些場景需要分散式任務調度:
  • 同一個服務多個實例的任務存在互斥時,需要統一的調度。任務調度需要支持高可用、監控、故障告警。
  • 需要統一管理和追蹤各個服務節點任務調度的結果,需要記錄保存任務屬性信息等。顯然傳統的定時任務已經不滿足現在的分散式架構,所以需要一個分散式任務調度平臺,目前比較主流的是elasticjob和xxl-job。

二、為什麼選擇XXL-JOB

xxl-job中心式的調度平臺輕量級,開箱即用,操作簡易,上手快,與SpringBoot有非常好的集成,而且監控界面就集成在調度中心,界面又簡潔,對於企業維護起來成本不高,還有失敗的郵件告警等等。這就使很多企業選擇xxl-job做調度平臺。

三、快速入門

具體安裝參照官方文檔,官方是最靠譜的
https://www.xuxueli.com/xxl-job/

這裡主要記錄一下XXL-JOB有2塊,

一是調度中心,需要配置,建議獨立部署

  1. 參考其官方demo調度中心項目:xxl-job-admin
  2. 作用:統一管理任務調度平臺上調度任務,負責觸發調度執行,並且提供任務管理平臺。

參考其官方文檔 2.3 配置部署“調度中心”

另一塊就是 【執行器】,參考官方文檔 2.4 配置部署“執行器項目”

  1. “執行器”項目:xxl-job-executor-sample-springboot (提供多種版本執行器供選擇,現以 springboot 版本為例,可直接使用,也可以參考其並將現有項目改造成執行器)
  2. 作用:負責接收“調度中心”的調度並執行;可直接部署執行器,也可以將執行器集成到現有業務項目中。

在你的springboot業務項目中,引入這個xxl-job-executor-sample-springboot模塊就可以了
執行器支持集群部署,提升調度系統可用性,同時提升任務處理能力。
執行器集群部署時,幾點要求和建議:

  • 執行器回調地址(xxl.job.admin.addresses)需要保持一致;執行器根據該配置進行執行器自動註冊等操作。
  • 同一個執行器集群內AppName(xxl.job.executor.appname)需要保持一致;調度中心根據該配置動態發現不同集群的線上執行器列表。

四、啟動-運行

首先啟動調度中心

這裡我們本地啟動,先創建好資料庫,並且導入官方提供的sql


Run 起來,查看控制台,顯示 success 就啟動成功

打開瀏覽器,輸入後臺地址 http://localhost:8080/xxl-job-admin, 賬號damin ,密碼預設是123456

啟動執行器

這裡我們啟動2個,測試下集群的任務運行情況:
先打開一個執行器的配置文件application.properties

8082就是複製的第二個執行器,代碼相同,改一下埠
xxl.job.admin.addresses,填寫你上面調度中心的地址
xxl.job.accessToken,調度中心如果配置了就要寫,沒有寫就預設空著
xxl.job.executor.appname,執行器名稱,官網文檔說瞭如果集群,appname要一致

兩個執行器都跑起來:
8081

8082

回到後臺調度中心後臺,2個執行器已經自動註冊

運行任務

前提:在執行器中,都有已經寫好了定時任務,我們用的官網demo,裡面已經有寫好的方法了

回到調度中心的任務管理,

我們編輯此任務,將路由策略改為輪詢:

保存後,執行一次,看看效果:

查看控制台,8082列印了日誌,說明8082運行了任務,8081沒有執行,因為我們執行路由策略是輪詢,並且保證這個任務只能被執行一次

再執行一次,8081 執行了

以上就是這次對XXL-JOB的一次學習和總結,以後如果有集群部署的地方,就不要再去使用springboot的Quartz這種只適合單體項目的定時任務了,如果不手動去處理,多個服務會重覆執行,可以考慮使用XXL-JOB,部署簡單、學習成本低!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題 回答 xxljob支持自定義http介面來添加調度任務嗎? . 支持的,我們基於低代碼的實際場景,封裝成了openfeign的介面,這實際上也是一種http介面,我們封裝了兩個介面,一個用來增加和更新調度任務,一個用來修改任務的狀態,即啟用,停用,刪除; xxljob是否支持某個時間點固定執行 ...
  • Socks實際上是什麼:實際上是提供了精彩通信的埠,在通信之前雙方都必須要創造一個端點才能通信,其實感覺socket跟電腦的三次握手有些相似,分為三個步驟: (1)伺服器監聽 (2)客戶端請求 (3)連接確認 ...
  • 當你需要一個方法,可以簡便的遷移或複製虛擬環境到其他電腦上時,可以使用這個腳本一鍵創建虛擬環境並分享給你的朋友。 ...
  • Java集合中設計了一個介面Java.util.Map,它實現類中hashMap、hashTable、TreeMap、ConcurrentHashMap、LinkedHashMap。 Map類型的集合用來做鍵值對存儲的,也就是key-value形式的。所以不允許鍵重覆,值是可以重覆的。 hashMa ...
  • 來源:blog.csdn.net/weixin_44912855 最近微信群里一個網友分享了他京東一面的過程,我這裡分享給大家其中一道面試題。 京東一面」子線程如何獲取父線程ThreadLocal的值 子線程如何獲取父線程ThreadLocal的值 想要子線程獲取父線程中 ThreadLocal 中 ...
  • Python 是一種極其多樣化和強大的編程語言!當需要解決一個問題時,它有著不同的方法。在本文中,將會展示列表解析式 (List Comprehension)。我們將討論如何使用它?什麼時候該或不該使用它? 列表解析式的優勢 •比迴圈更節省時間和空間。 •需要更少的代碼行。 •可將迭代語句轉換為公式 ...
  • 概述 目前主流的網路數據分析工具主要有兩類,一類是http協議分析工具,如fiddler,這類工具擅長對字元串類型協議分析;另一類是原始網路數據包的監聽分析,如Wireshark,這類工具擅長分析網路底層行為。這兩類工具一類擅長字元串協議分析,另一類擅長網路底層行為分析,但是上述兩類工具分析二進位流 ...
  • 微信開放平臺:微信掃碼登錄功能 官方文檔:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 1. 授權流程說明 微信OAuth2.0授權登錄讓微信用戶使用微信身份安全登錄 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...