一種基于工作流的高可配分布式實時計算引擎及控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種信息處理技術(shù)領(lǐng)域,尤其是涉及一種支持高并發(fā)、實時性、高可靠性的基于工作流的高可配分布式實時計算引擎及控制方法。
【背景技術(shù)】
[0002]隨著信息產(chǎn)業(yè)及計算機技術(shù)的發(fā)展,新興業(yè)務的規(guī)模飛速增長,如鐵道部的訂票系統(tǒng)、阿里淘寶的訂單系統(tǒng),每天處理數(shù)以億記的請求,甚至每秒請求數(shù)都可能過百萬;又如搜索引擎,同樣需要響應大規(guī)模請求,而且每次請求都需要在TB級數(shù)據(jù)中檢索出用戶想要的結(jié)果。又如電力、交通、通訊等系統(tǒng),需要高可靠性,不間斷提供服務,業(yè)務中斷將會帶來巨大的損失。
[0003]現(xiàn)在常見的開源Hadoop分布式中,主要面向靜態(tài)數(shù)據(jù)(如文件、數(shù)據(jù)庫),對于流式數(shù)據(jù)缺乏支持,另外各個工作環(huán)節(jié)無法完美協(xié)調(diào)工作,一般通過中間數(shù)據(jù)交互;并且Hadoop安裝部署比較復雜;開發(fā)語言為java,對實時性的支持比較差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明主要是解決現(xiàn)有技術(shù)中一些數(shù)據(jù)處理系統(tǒng)并不能很好支持高并發(fā)、實時性、高可靠性的問題,提供了一種支持高并發(fā)、實時性、高可靠性的基于工作流的高可配分布式實時計算引擎。
[0005]本發(fā)明還提供了一種支持高并發(fā)、實時性、高可靠性的基于工作流的高可配分布式實時計算引擎控制方法。
[0006]本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的:一種基于工作流的高可配分布式實時計算引擎,包括工作流管理器、工作單元監(jiān)視器和若干工作單元,所述工作單元分別連接在一個通訊適配器上,且所述的工作流管理器和工作單元監(jiān)視器也分別連接在通訊適配器上;
工作單元:每個工作單元包括有若干用于處理數(shù)據(jù)的工作進程,根據(jù)處理數(shù)據(jù)的形式,工作單元設置不同功能,各工作單元之間通過組合,構(gòu)成處理大規(guī)模并發(fā)或?qū)崟r性形式的數(shù)據(jù)處理結(jié)構(gòu);
工作單元監(jiān)視器:監(jiān)視各工作單元上工作進程的運行狀態(tài),并反饋給工作流管理器;工作流管理器:配置、起停、調(diào)度和管理工作流數(shù)據(jù),并根據(jù)工作單元監(jiān)視器反饋的信息,對工作單元上工作進程進行調(diào)度。
[0007]本發(fā)明通過工作流管理器、工作單元監(jiān)視器和工作單元共同組成了一個工作流管理、運行、調(diào)度的分布式計算核心,能夠有機組織各個工作單元及工作單元上的工作流程,使得能很好地支持大規(guī)模并發(fā)和實時性數(shù)據(jù)處理,并具有高可用性。本發(fā)明中工作流為處理某種業(yè)務的完整工作流程。工作單元為處理工作流中的一個環(huán)節(jié)。通訊適配器負責在各種操作系統(tǒng)上本機或跨主機進程間的通訊。
[0008]作為一種優(yōu)選方案,當為處理大規(guī)模并發(fā)數(shù)據(jù)結(jié)構(gòu)時,工作單元包括一個輸入工作單元和若干處理數(shù)據(jù)的第一處理工作單元,每個第一處理單元包括處理特定數(shù)據(jù)的工作進程,輸入工作單元分別與各第一處理單元相連接;或者工作單元包括一個輸入工作單元和一個處理數(shù)據(jù)的第二處理工作單元,輸入工作單元與第二處理工作單元連接,處理工作單元包括多個分別處理數(shù)據(jù)的工作進程;
當為處理實時性數(shù)據(jù)結(jié)構(gòu)時,工作單元包括一個用于拆分任務的拆分工作單元、一個用于合并任務的合并工作單元、若干處理任務數(shù)據(jù)的第三處理工作單元,這些第三處理工作單元并聯(lián)在拆分工作單元和差分工作單元之間。工作單元根據(jù)需求可以分成不同功能,或是包含不同的工作進程,各工作單元之間再進行串并聯(lián)組合成用于處理大規(guī)模并發(fā)或?qū)崟r性形式數(shù)據(jù)的結(jié)構(gòu)。第一工作單元包括處理特定數(shù)據(jù)的工作進程表示該工作單元只能處理一種數(shù)據(jù),多個第一工作單元分別處理不同數(shù)據(jù),分工進行處理,輸入工作單元在分配數(shù)據(jù)時,將各數(shù)據(jù)進行分類,分別分配給對應的第一處理工作單元。第二處理工作單元包括多個分別處理數(shù)據(jù)的工作進程,這些工作進程每個都可以對數(shù)據(jù)進行處理,而第二處理工作單元將數(shù)據(jù)隨機分配給各個工作進程。第三處理工作單元包括多個處理數(shù)據(jù)的工作進程,這些工作進程每個都可以對數(shù)據(jù)進行處理,第三處理工作單元將數(shù)據(jù)平均分配給各個工作進程。
[0009]作為一種優(yōu)選方案,還包括有操作系統(tǒng)適配器和實時庫適配器,操作系統(tǒng)適配器和實時庫適配器分別連接在通訊適配器。操作系統(tǒng)適配器用于與不同操作系統(tǒng)接口連接,實時庫適配器用于和實時庫連接,進行存取訪問。
[0010]一種基于工作流的高可配分布式實時控制方法,包括大規(guī)模并發(fā)和實時性處理步驟;
大規(guī)模并發(fā)處理步驟包括靜態(tài)處理步驟和動態(tài)處理步驟,
靜態(tài)處理步驟:工作流管理器將數(shù)據(jù)分配給輸入工作單元,輸入工作單元對數(shù)據(jù)進行分類,然后將每類數(shù)據(jù)分配給對應處理該類數(shù)據(jù)的第一處理工作單元;
動態(tài)處理步驟:工作管理器將數(shù)據(jù)分配給輸入工作單元,輸入工作單元將數(shù)據(jù)發(fā)送給一個第二處理工作單元,處理工作單元將任務隨機分配給若干工作進程進行處理;
實時性處理步驟包括:工作流管理器將數(shù)據(jù)分配給拆分工作單元,拆分工作單元將數(shù)據(jù)拆分成若干子數(shù)據(jù),分發(fā)給若干第三處理工作單元并行處理,當所有子數(shù)據(jù)處理完成后則都發(fā)送給合并處理單元,由合并處理單元將子數(shù)據(jù)合并。本發(fā)明將工作流數(shù)據(jù)根據(jù)需求由工作單元進行合理實時地分配,實現(xiàn)對大規(guī)模并發(fā)、實時性數(shù)據(jù)處理以及高可靠性的支持。
[0011]作為一種優(yōu)選方案,還包括對各工作單元的工作進程控制的步驟,其步驟包括:工作單元監(jiān)視器監(jiān)視每個工作單元的信息,信息包括隊列數(shù)和處理速度,當某個工作單元數(shù)據(jù)增多,處理速度變慢時,工作單元監(jiān)視器標記該工作單元狀態(tài)為繁忙,并將該信息報告給工作流管理器,工作流管理器增加該工作單元的工作進程;當某個工作單元請求減少,工作單元監(jiān)視器標記該工作單元狀態(tài)為空閑,并將該信息報告給工作流管理器,工作流管理器減少該工作單元的工作進程;另外監(jiān)視器還同時監(jiān)視工作進程的異常狀態(tài),當某個工作進程出現(xiàn)異常時,工作單元監(jiān)視器標記該工作單元為異常,并將該信息報告給工作流管理器,工作流管理器將數(shù)據(jù)發(fā)送到狀態(tài)正常的工作進程,并在計算所需工作進程時,總是將異常的工作進程剔除。該對工作進程控制使得整個工作流處于穩(wěn)定、平衡狀態(tài),保證了數(shù)據(jù)處理的實時性、又避免了任務處理失敗的問題。
[0012]因此,本發(fā)明的優(yōu)點是:工作單元可以根據(jù)需求進行多種分配,每個工作單元可以包含不同的工作進程分成不同功能,各工作單元之間通過組合后形成用于處理大規(guī)模并發(fā)或?qū)崟r性形式數(shù)據(jù)的結(jié)構(gòu),能夠很好地支持大規(guī)模并發(fā)和實時性數(shù)據(jù)處理,并具有高可用性。
【附圖說明】
[0013]附圖1是本發(fā)明的一種結(jié)構(gòu)框視圖;
附圖2是本發(fā)明中處理大規(guī)模并發(fā)數(shù)據(jù)時工作單元的一種連接結(jié)構(gòu)示意圖;
附圖3是本發(fā)明中處理大規(guī)模并發(fā)數(shù)據(jù)時工作單元的另一種連接結(jié)構(gòu)示意圖;
附圖4是本發(fā)明中處理實時性數(shù)據(jù)時工作單元的一種連接結(jié)構(gòu)示意圖。
[0014]1-工作流管理器2-工作單元監(jiān)視器3-工作單元4-通訊適配器5-操作系統(tǒng)適配器6-實時庫適配器7-輸入工作單元8-第一處理工作單元9-第二處理工作單元10-拆分工作單元11-合并工作單元12-第三處理工作單元。
【具體實施方式】
[0015]下面通過實施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進一步具體的說明。
[0016]實施例:
本實施例一種基于工作流的高可配分布式實時計算引擎,如圖1所示,包括工作流管理器1、工作單元監(jiān)視器2、通訊適配器4、操作系統(tǒng)適配器5、實時庫適配器6和多個工作單元3,每個工作單元又包括有若干各工作進程。工作單元分別連接在通訊適配器上,工作流管理器、工作單元監(jiān)視器、操作系統(tǒng)適配器和實時庫適配器都是鏈接在通訊適配器上。該工作單元根據(jù)處理數(shù)據(jù)的形式,工作單元可以設置不同的功能,且各工作單元之間在通訊適配器內(nèi)進行組合,構(gòu)成處理大規(guī)模并發(fā)或?qū)崟r性形式的數(shù)據(jù)處理結(jié)構(gòu)。
[0017]如圖2所示,當為處理大規(guī)模并發(fā)數(shù)據(jù)結(jié)構(gòu)時,包括靜態(tài)處理結(jié)構(gòu)和動態(tài)處理結(jié)構(gòu),靜態(tài)處理結(jié)構(gòu)工作單元包括一個輸入工作單元7和若干處理數(shù)據(jù)的第一處理工作單元8,這里以三個為例,每個第一處理單元包括處理特定數(shù)據(jù)的工作進程,輸入工作單元分別與各第一處理單元相連接。如圖3所示,動態(tài)處理結(jié)構(gòu)工作單元包括一個輸入工作單元7和一個處理數(shù)據(jù)的第二處理工作單元9,輸入工作單元與第二處理工作單元連接,處理工作單元包括多個分別處理數(shù)據(jù)的工作進程。
[0018]當為處理實時性數(shù)據(jù)結(jié)構(gòu)時,工作單元包括一個用于拆分任務的拆分工作單元10、一個用于合并任務的合并工作單元11、若干處理任務數(shù)據(jù)的第三處理工作單元12,這些第三處理工作單元并聯(lián)在拆分工作單元和差分工作單元之間。
[0019]基于工作流的高可配分布式實時引擎控制方法,包括大規(guī)模并發(fā)和實時性處理步驟。其中大規(guī)模并發(fā)處理步驟包括靜態(tài)處理步驟和動態(tài)處理步驟。
[0020]靜態(tài)處理步驟包括:工作流管理器將數(shù)據(jù)分配給輸入工作單元,輸入工作單元對數(shù)據(jù)進行分類,然后將每類數(shù)據(jù)分配給對應處理該類數(shù)據(jù)的第一處理工作單元。該方法是使用多個工作單元以負載均衡方式提供服務,將對此服務數(shù)據(jù)大致平均分配到這些工作單元上,通常并發(fā)能力可近似線性增加。其計算公式如下: 公式 l:Ps = nXPXk
其中:P為單個服務實例的并發(fā)能力;11為實例數(shù);Ps為為服務集群并發(fā)能力;k為分布式性能系數(shù)(0.9 <k < I)
以圖2為例,包括一個輸入工作單元和三個第一處理工作單元,每個第一處理工作單元分別處理一種類型數(shù)據(jù),這里假設數(shù)據(jù)A、B、C,三個第一處理工作單元分別處理這三種數(shù)據(jù)。工作時,工作流管理器將數(shù)據(jù)分配給輸入工作單元,輸入工作單元將數(shù)據(jù)A分配給處理數(shù)據(jù)A的第一處理工作單元,數(shù)據(jù)B分配給處理數(shù)據(jù)B的第一處理工作單元,數(shù)據(jù)C分配給處理數(shù)據(jù)C的第一處理工作單元。
[0021]動態(tài)處理步驟包括:工作管理器將數(shù)據(jù)分配給輸