XXL-JOB 分布式任務排程平台特點
- 職責分離,任務排程,任務執行解耦
- 執行一緻性,任務執行不會多次重複執行
- 豐富的路由政策(指定那個執行執行個體執行)
- 阻塞處理 (觸發的任務,上一次沒有執行完,針對這種情況,提供了處理機制)
- 容錯處理(任務執行失敗,有重試機制)
架構
核心表介紹
xxl_job_group 每個appName 一條記錄,執行器逗号分割存在address_list
xxl_job_registry 每個執行器一條記錄
xxl_job_info 任務
一個appName 對應 多個 執行器 ,一個執行器,多個任務
注冊機制
registryMonitorThread 探活程序 位移xxl-job-admin中
ExecutorRegistryThread 位于執行器中,執行器本身是個内嵌Server
執行過程
時間輪說明
有專門的線程ringThread 每1s 處理時間輪的資料,提升排程效率
XXL-JOB-Admin 排程器 HA 架構
注意實作:
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
}
}