天天看點

分布式任務排程XXL-JOB

作者:溫安适技術管理之路

XXL-JOB 分布式任務排程平台特點

  • 職責分離,任務排程,任務執行解耦
  • 執行一緻性,任務執行不會多次重複執行
  • 豐富的路由政策(指定那個執行執行個體執行)
  • 阻塞處理 (觸發的任務,上一次沒有執行完,針對這種情況,提供了處理機制)
  • 容錯處理(任務執行失敗,有重試機制)

架構

分布式任務排程XXL-JOB

核心表介紹

xxl_job_group 每個appName 一條記錄,執行器逗号分割存在address_list

xxl_job_registry 每個執行器一條記錄

xxl_job_info 任務

一個appName 對應 多個 執行器 ,一個執行器,多個任務

注冊機制

registryMonitorThread 探活程序 位移xxl-job-admin中

ExecutorRegistryThread 位于執行器中,執行器本身是個内嵌Server

分布式任務排程XXL-JOB

執行過程

分布式任務排程XXL-JOB

時間輪說明

分布式任務排程XXL-JOB

有專門的線程ringThread 每1s 處理時間輪的資料,提升排程效率

XXL-JOB-Admin 排程器 HA 架構

分布式任務排程XXL-JOB

注意實作:

mysql資料庫必須是一個

排程伺服器,時間要進行同步

XXL-JOB HA方案的,nginx的配置

upstream local.xxljob.cn {
    # xxl-job-admin 的位址
    server 192.168.1.7:8080;
}

server {
    listen       80; # nginx端口
    server_name  ls.xxljob.cn; # hosts中配置的域名

    # 需要轉發的uri路徑
    location ~* /xxl-job-admin {
                proxy_pass  http://local.xxljob.cn; # 映射上面的upstream
    }
}           

繼續閱讀