分布式排程

2021-10-25 11:32:23 字數 1003 閱讀 5831

1.在集群伺服器環境下排程任務

乙個網際網路應用不斷擴大單台伺服器是不夠的,同樣的**工程需要copy部署到多台伺服器,這樣的處理形式稱之為伺服器集群。

而伴隨著伺服器集群帶來了乙個問題,比如定時的後台任務,例如資料統計、郵件傳送等我們希望這些任務同一時間只有乙個任務在進行,但是集群伺服器上面每台伺服器都可能部署著同樣的功能模組,一起執行可能引起一些問題,比如重複的操作可能產生一些錯誤的資料,再如,重複的操作浪費伺服器資源。

這樣,很容易想到的乙個解決方案就是,某個任務只在特定某台機器上面執行。這是乙個可行的方案,但是也會有明顯缺陷,比如在乙個有n臺伺服器的集群中:在1-10號伺服器上面同時存在任務a工程,只在1號機器上執行;在11-20號伺服器上同時存在任務b工程,只跑在11號機器上執行等等,這樣的話維護人員需要自己記住這些任務部署的機器編號,而且任務多了需要部署的機器也多了,另外如果當規模縮小需要減少伺服器的時候這些任務執行的伺服器可能都要重新編排一次。而最嚴重的問題是當負責執行任務的伺服器掛了的時候,業務也就停止了。

那麼我們需要在這樣乙個集群環境下希望某些事情同一時間只有乙個伺服器在執行,並且當這個伺服器掛了的時候另外選一台機器代替它工作起來——分布式排程就可以解決這個問題

2.把乙個任務拆分多個任務同時進行

有些時候同乙個任務是可以拆分成多個小任務同時進行的,比如一張資料表中資料遷移至另一張表,我們需要將a表中的資料遷移至a1表,如果表的資料越多執行時間越慢,而這樣的業務其實是可以多台機器同時進行來加快遷移速度的,利用分布式排程也可以解決這個問題。

elastic-job-lite當當網開源的乙個基於zookeeper的分布式排程解決方案。原理如下圖:

elastic-job-lite 通過向zookeeper註冊client ,然後zookeeper的通知機制來實現同乙個時間執行乙個client。

分布式任務排程

定時job,在什麼時間進行執行 任務。public static void main string args catch exception e thread thread new thread runnable thread.start public static void main string...

分布式排程系統 任務排程

這就是分布式任務排程所要解決的問題 舉個栗子 如何快速的做出大量的熱狗?如果將每乙個乙個熱狗按流程做的話,可見工作量會十分巨大而且效率低下 對任務按需求切分成多個子任務 再對所有的中間態結果進行reduce合併,得到最終結果 我們換個角度理解mapreduce操作 還會有一些廚師,按照一定的比例,將...

分布式排程的理解

分布式排程,指的是在分布式條件下,定時任務的執行和管理 定時任務是乙個很常見的場景,比如 主要有兩個特性 運 在分布式集群環境下的排程任務,同 個定時任務程式可以部署多份,但是只應該有 個定時任務在執行 可以把 個 的作業任務拆分為多個 的作 業任務,同時執 特性一 可以部署多份,只有乙份執行 參見...