一種協調執行任務的系統及方法
【技術領域】
[0001]本發明涉及計算機領域,特別涉及一種協調執行任務的系統及方法。
【背景技術】
[0002]隨著計算機技術的發展,可以將大規模的業務拆分為多個小的子業務,分別由計算機網絡中的多個計算機分別執行后,再匯總得到業務結果。這時,就需要計算機網絡中的計算機之間互相協調。
[0003]在申請日為2013年12月12日,申請號為201310681028.1,名稱為“一種面向實時云平臺的故障檢測與容錯方法及系統”的專利申請中,就提出了一種當任務為對云平臺的故障檢測與糾錯時的處理方案。具體地說,該專利申請的解決方案涉及一種面向實時云平臺的故障檢測與容錯方法及系統,包括:發送命令,提交任務,并將分配給工作節點的任務存儲在相應路徑下的客戶端;用于監控各工作節點的運行狀態,根據工作節點上傳的心跳信息進行節點級故障檢測與容錯,執行故障節點中任務的迀移的全局狀態監控模塊;用于存儲全局狀態監控模塊和各個工作節點的工作狀態及心跳信息的全局狀態存儲模塊;用于執行任務,運行守護進程來守護工作進程,并執行程序級故障檢測與容錯的工作節點;本發明中使整個集群的狀態信息全部存儲在Zookeeper系統中,實現節點的無狀態架構,節點故障不會造成狀態丟失,具有完善的故障檢測與容錯機制,實現多級容錯,保障實時業務的不間斷運行。
[0004]可以看出,上述方案主要是解決了實時的故障檢測和容錯的方法,它的實現包括4個角色:客戶端、全局狀態監控模塊、全局狀態存儲模塊及工作節點,任務是由客戶端分配并分發到全局狀態存儲模塊,然后工作節點定時去取分配給自己的任務進行處理。采用這種方案協調執行任務,存在著缺點:由于客戶端在協調執行任務過程中是核心,所以存在單節點的風險,客戶端出了問題所有任務都會出現延遲處理,并且上述方案也沒有給出如何動態擴容的方法,例如在任務數突然劇增、大量任務面臨延遲時如何動態的增加節點處理。
【發明內容】
[0005]有鑒于此,本發明實施例提供一種協調執行任務的系統,該系統能夠在多節點協調執行任務過程中,防止任務處理延遲,且能夠動態擴容。
[0006]本發明實施例還提供一種協調執行任務的方法,該方法能夠在多節點協調執行任務過程中,防止任務處理延遲,且能夠動態擴容。
[0007]根據上述目的,本發明是這樣實現的:
[0008]一種協調執行任務的系統,包括:控制節點及任務節點,其中,
[0009]控制節點,用于配置任務的執行策略,根據任務的執行策略將任務劃分為多個子任務及確定執行任務的任務處理節點數量;
[0010]多個任務處理節點中的每一個任務處理節點注冊到zookeeper上,基于zookeeper動態選取產生管理任務處理節點和執行任務處理節點,管理任務處理節點,用于基于確定任務的任務處理節點數量,分別為多個執行任務處理節點分配對應的子任務;所述多個執行任務處理節點根據管理任務處理節點的分配執行子任務。
[0011]所述控制節點,還用于確定執行任務的任務處理節點中的工作線程數量。
[0012]所述任務處理節點采用全局唯一標識進行標識。
[0013]所述動態選取是根據所設置的選取規則進行選取的。
[0014]所述任務處理節點,還用于啟動工作線程抓取和執行對應的子任務,并啟動心跳線程定時更新管理任務處理節點的狀態。
[0015]一種協調執行任務的方法,該方法包括:
[0016]控制節點基于zooke^er配置任務的執行策略;
[0017]控制節點根據任務的執行策略將任務劃分為多個子任務及確定執行任務的任務處理節點數量。
[0018]所述控制節點確定執行任務的任務處理節點中的工作線程數量,子任務的劃分數量與工作線程數量相同,一個任務處理節點具有多個工作線程。
[0019]一種協調執行任務的方法,包括:
[0020]A、多個任務處理節點中的其中一個任務處理節點注冊到zookeeper上;
[0021]B、基于zookeeper動態選取產生管理任務處理節點和執行任務處理節點時,當該任務處理節點選取為管理任務處理節點時,基于從控制節點獲取的確定任務的任務處理節點數量,分別為多個執行任務處理節點分配對應的從任務節點所獲取的子任務;
[0022]當該任務處理節點為執行任務處理節點時,根據管理任務處理節點的分配執行子任務。
[0023]所述動態選取是根據所設置的選取規則進行選取的;
[0024]所述任務處理節點啟動工作線程抓取和執行對應的子任務,并啟動心跳線程定時更新管理任務處理節點的狀態。
[0025]所述步驟B定時重復執行,直到所有任務都處理完。
[0026]由上述方案可以看出,本發明實施例提供的協調執行任務系統由控制節點及任務處理節點組成,其中,控制節點,用于配置任務的執行策略,根據任務的執行策略將任務劃分為多個子任務及確定執行任務的任務處理節點數量;多個任務處理節點中的每一個任務處理節點注冊到zookeeper上,基于zookeeper動態選取產生管理任務處理節點(leader)和執行任務處理節點,管理任務處理節點基于確定任務的任務處理節點數量,分別為執行子任務的多個執行任務處理節點分配子任務,所述多個執行任務處理節點根據管理任務處理節點的分配執行子任務。由于管理任務處理節點是基于zooke印er動態選取產生,管理任務處理節點并不像【背景技術】的客戶端是一個固定節點,所以不存在單節點風險,防止了任務處理延遲,由于本發明實施例的控制節點是根據任務量依據執行策略分配任務處理節點數量及分配執行的多個子任務,所以可以根據需要對任務處理節點動態擴容。
【附圖說明】
[0027]圖1為本發明實施例提供的協調執行任務的系統結構示意圖;
[0028]圖2為本發明實施例提供的協調執行任務的方法一流程圖;
[0029]圖3為本發明實施例提供的協調執行任務的方法二流程圖。
【具體實施方式】
[0030]為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖并舉實施例,對本發明作進一步詳細說明。
[0031]【背景技術】的方案無法保證所有的任務能及時地被執行,在有些對穩定性和實時性要求非常高的計算機網絡中會存在隱患。因此,本發明實施例為了多節點協調執行任務過程中,防止任務處理延遲,且能夠動態擴容,基于zookeeper技術設置計算機網絡。zookeeper技術是一個分布式的,開放源碼的分布式應用程序協調服務,其是一個針對分布式計算機網絡的可靠協調機制,可以為分布式計算機網絡提供的功能為:配置維護、名字服務、分布式同步及組服務等,其可以在分布式計算機網絡中動態選取管理任務處理節點后,由當前所選舉出的管理任務處理節點為其他作為執行業務處理節點的業務處理節點分配子業務并指示其進行對應子業務的執行。
[0032]因此,本發明實施例提供的協調執行任務系統由控制節點及任務處理節點組成,其中,控制節點,用于配置任務的執行策略,根據任務的執行策略將任務劃分為多個子任務及確定執行任務的任務處理節點數量;多個任務處理節點中的每一個任務處理節點注冊到zookeeper上,基于zookeeper動態選取產生管理任務處理節點(leader)和執行任務處理節點,管理任務處理節點基于確定任務的任務處理節點數量,分別為執行子任務的多個執行任務處理節點分配子任務,所述多個執行任務處理節點根據管理任務處理節點的分配執行子任務。由于管理任務處理節點是基于zookeeper動態選取產生,管理任務處理節點并不像【背景技術】的客戶端是一個固定節點,所以不存在單節點風險,防止了任務處理延遲,由于本發明實施例的控制節點是根據任務量依據執行策略分配任務處理節點數量及分配執行的多個子任務,所以可以根據需要對任務處理節點動態擴容。
[0033]圖1為本發明實施例提供的協調執行任務的系統結構示意圖,包括:控制節點及任務節點,其中,
[0034]控制節點,用于配置任務的執行策略,