Serverless 應用引擎 SAE(Serverless App Engine)支持XXL-JOB低改造遷移,您無需修改任何代碼和配置,即可將XXL-JOB部署至SAE Job。本文介紹將XXL-JOB部署至SAE的操作步驟。
背景信息
SAE Job以任務為中心,當前聚焦支持單機廣播、并行分片模型的任務,同時支持事件驅動、并發策略和超時重試等特性,提供低成本、多規格、高彈性的資源實例來滿足短時任務的執行。在XXL-JOB遷移的過程中,您只需部署XXL-JOB客戶端,即業務代碼邏輯,無需部署XXL-JOB服務端。SAE Job扮演了XXL-JOB的調度中心和執行器,您只需聚焦任務代碼和簡單配置,例如任務模板、并發重試等,由SAE負責無侵入地調度、管控任務。
XXL-JOB作為分布式任務框架,在使用過程中存在以下痛點:
需要依賴外置數據庫,增加了數據庫的使用成本和維護復雜度。
依賴數據庫的鎖機制來保證集群分布式調度的一致性,當短時任務量不斷增多將對數據庫造成較大壓力,成為性能瓶頸。
相較于無中心模式需要額外部署調度器,調度器和執行器均需要常駐,同時為保證高可用均至少部署兩臺,當無任務執行時造成不必要的資源成本浪費。
將XXL-JOB部署到SAE將解決上述痛點,并提供降本提效的核心價值。具體體現如下:
降本:如果采用原有的XXL-JOB,為了保持其高可用,至少需MySQL+2 ECS+SLB+N*ECS的常駐費用;而部署到SAE上,則只需要為其任務執行具體業務邏輯所消耗的CPU與內存付費,即SAE實際的資源消耗量。
提效:SAE提供了全托管面運維的體驗,降低了整體運維復雜度,提升了應用可用性。
操作步驟
本示例僅說明關鍵參數,更多信息,請參見任務模板管理。
登錄SAE控制臺。
- 在左側導航欄,單擊任務模板列表,在頂部菜單欄選擇地域。
- 在任務模板列表頁面,單擊創建任務模板。
- 在任務基本信息配置向導頁面,配置模板名稱、網絡與內存等信息,單擊下一步:部署配置。
在部署配置頁簽,配置以下信息,單擊下一步:任務設置。
- 按需選擇技術棧語言和任務部署方式,并配置相關信息。
在環境變量設置區域,標識任務需執行的Handler和參數。
參數示例值說明如下。
類型
變量名稱
變量值/變量引用
說明
自定義
JOB_TYPE
xxljob-2.3.0
XXL-JOB版本。當前支持xxljob-2.2.0和xxljob-2.3.0。
EXECUTOR_NAME
demoJobHandler
JobHandler名稱。運行模式為BEAN模式時生效,對應執行器中新開發的JobHandler類@XxlJob注解自定義的value值。
EXECUTOR_PARAMS
hello
任務執行所需的參數,換行需要轉義為
\n
。- 在日志收集服務區域,打開開通日志收集到SLS日志服務功能開關,并配置相關信息。更多信息,請參見設置日志收集。
- 在任務設置配置向導頁面,配置相關信息,單擊下一步:確認規格。
- 在任務基本設置區域,設置定時規則。
- 展開任務高級設置區域,打開啟用任務分片開關。
- 可選:單擊編輯任務分片名稱,在編輯任務分片名稱面板,修改分片名前綴與分片名稱,單擊關閉圖標。
- 在確認規格配置向導頁面,確認信息并單擊確認創建。任務創建成功后,會自動跳轉至任務模板詳情頁面。
在任務模板詳情頁面,單擊手動執行任務,然后在任務記錄頁面,單擊目標任務ID進入任務詳情頁面。
任務執行過程中,您可以查看實例的運行狀態,來判斷任務是否成功運行。您還可以單擊實時日志,查看目標實例的標準輸出日志。更多信息,請參見日志管理。
如果要創建新的任務模板,您可以基于現有的任務模板,使用復制功能快速創建任務模板,只需修改差異化配置。若與已創建的任務使用相同的部署包,可在選擇部署包時選擇引用部署包,這樣新的任務模板將與被引用任務共用同一部署包,做到只需一次部署即可同步更新。
- 在任務模板列表頁面,單擊目標任務模板操作列的復制。
- 在任務基本信息配置向導頁面,按需修改配置,單擊下一步:部署配置。
- 在部署配置配置向導頁面,配置相關信息,單擊下一步:任務設置。本示例僅列舉關鍵步驟,以部署Java語言的JAR包為例,其他語言操作類似。
- 技術棧語言選擇Java,任務部署方式選擇JAR包部署。
- 在配置JAR包區域,文件上傳方式選擇引用其他任務模板JAR包,引用任務模板選擇已創建的任務模板名稱。
- 在任務設置配置向導頁面,單擊下一步:確認規格。
- 在確認規格配置向導頁面,單擊確認創建。