與開源產品對比
本文主要介紹任務調度 XXL-JOB 版與開源產品的比對。
功能集 | 功能 | 開源 XXL-JOB | XXL-JOB on SchedulerX |
兼容性 | 協議兼容 | 不同版本間編程接口、通信協議、表結構不一致,升級版本有風險。 | 兼容 XXL-JOB v2.2.0 以上所有版本接入,不需維護調度節點。 |
基礎能力 | 調度類型 | cron、fixed_rate。 | cron、fixed_rate、fixed_delay、one_time、api。 |
時區 | 不支持 | 支持 | |
自定義日歷 | 不支持 | 支持 | |
指定開始時間 | 不支持 | 支持 | |
廣播分片 | 不支持聚合 | 支持聚合 | |
運維動作 | 手動運行、停止。 | 手動運行、停止、原地重跑、重刷數據。 | |
優雅下線 | 不支持,客戶端停止的時候,會強制調用線程中斷。 | 支持 | |
任務灰度 | 不支持 | 支持按照標簽路由調度能力,集成 MSE 微服務治理后,可以做到動態打標和全鏈路灰度能力。 | |
穩定性 | 限流控制 | 僅支持客戶端限流,多個 executor 無法做到冪等執行,導致任務重復執行,浪費計算資源,甚至引發故障。 | 服務端控制,支持任務級別、應用級別的限流控制。 |
拖垮數據庫可能性 | 每次調度都會在數據庫保留歷史執行記錄,默認是存最近30天的記錄,導致xxl_job_log表數據量增長太快,拖垮整個數據庫的性能,從而影響任務調度。 | 采用存儲計算分離、冷熱數據備份技術,將任務最近執行的歷史記錄保留在數據庫中,任務長時間的歷史記錄存到日志服務中歸檔,解決了開源 XXL-JOB 的歷史記錄存儲問題。 | |
調度任務漏發可能性 | 每次調度都需要通過數據庫撈取要調度的執行計劃,如果撈取超時了,就會導致任務漏觸發。 | 采用分布式架構,不同 server 在內存中調度不同的定時任務,對數據庫壓力小,大大降低了漏觸發的概率。 | |
客戶端日志丟失可能性 | 調度特別頻繁會導致小文件特別多,從而影響客戶端的性能,一旦客戶端機器掛了,這臺機器上所有日志文件也會丟失。 | 提供了采集日志的能力,將客戶端的日志采集到日志服務 SLS 中,還通過關鍵字和過濾條件,快速定位到出問題的日志。 | |
安全 | 單點登錄 | 不支持 | 支持 |
細粒度權限控制 | 不支持 | 支持不同資源的授權和不同操作的授權。 | |
資源授權 | 不支持 | 支持 | |
資源隔離 | 不支持 | 支持應用級別權限控制,不同的應用分配不同的 Access Token。 | |
可觀測能力 | 調度事件 | 不支持 | 支持 |
監控大盤 | 只能看天級別。 | 可以看分鐘、小時、天級別。 | |
操作記錄 | 不支持 | 支持 | |
日志 | 存在客戶端,每次執行產生一個小文件,有性能和穩定性問題。 | 存儲在日志服務,支持查看最近2個月的日志。 | |
報警監控 | 報警方式 | 郵件 | 郵件、webhook、短信、電話。 |
報警聯系人 | 不支持 | 集成云監控報警能力,支持實例級別、任務級別報警監控。 | |
報警歷史 | 不支持 | 支持 |