xxl-job高可用部署
請尊重作者勞動成果,轉載請標明原文鏈接:
https://www.cnblogs.com/wanghongsen/p/12504130.html
一 高可用部署
xxl-job作為分布式任務調度中心,怎么實現高可用呢,如下圖所示 當我們部署一套 XXL-JOB 的時,調度中心 可用分布式部署,
首先我們的調度中心最好部署兩台,調度中心會指向同一個 MySQL 實例,這樣調度中心一定程度上可以保證它的 HA 。
二 具體流程
1 對於頁面的請求操作是根據 nginx進行 負載均衡轉發到相應調度中心機器上,它每次調度的時候會通過一個遠程任務代理的請求,觸發到遠程的執行器,
2 在部署遠程執行器的時候,只要把每一個機器指向同一個 APP name,這樣每個執行器會以心跳注冊的方式向調度中心進行注冊,它也是 30 秒注冊一次,三次心跳。如果是連續三次心跳中斷的話,會把當前的執行器摘除掉。這樣調度中心發現三次心跳之內都在存活這個執行器的情況下,會把它視為一個存活的執行器。
3 在下次任務觸發的時候,調度中心根據提前配置好的路由策略 拿到要調的機器地址,通過RPC的方式去調任務相應的 執行器,
4 然后由該執行器 開始執行任務。
調度中心和執行器之間的通信也是全異步化的,從任務的觸發,到執行,到結果回調,如果可以入隊列的話,都通過隊列的方式進行。