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