42]基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種與數(shù)據(jù)流處理方法對應(yīng)的數(shù)據(jù)流處理裝置,由于該裝置解決問題的原理與本發(fā)明實施例中的數(shù)據(jù)流處理方法相似,因此該裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。
[0143]如圖10所示,為本發(fā)明實施例一提供的分布式數(shù)據(jù)流處理裝置示意圖,該裝置屬于第一節(jié)點,包括:
[0144]確定模塊101,用于根據(jù)需要分配給所述第一節(jié)點的下一跳工作節(jié)點的數(shù)據(jù)流的鍵值,確定第二節(jié)點為處理所述鍵值對應(yīng)的數(shù)據(jù)流的下一跳工作節(jié)點;
[0145]遷移模塊102,用于在確定所述第二節(jié)點滿足設(shè)定的負載遷移條件后,將所述需要分配給下一跳工作節(jié)點的數(shù)據(jù)流從所述第二節(jié)點遷移至第三節(jié)點進行處理,并指示所述第二節(jié)點和第三節(jié)點同步所述鍵值對應(yīng)的數(shù)據(jù)流的狀態(tài)信息;
[0146]其中,所述第二節(jié)點和第三節(jié)點屬于所述第一節(jié)點的下一跳工作節(jié)點集合,所述第三節(jié)點的累計負載小于所述第二節(jié)點的累計負載。
[0147]可選地,所述第三節(jié)點為當前所述第一節(jié)點的下一跳工作節(jié)點集合中具有最小累計負載的工作節(jié)點。
[0148]可選地,所述設(shè)定的負載遷移條件包括:
[0149]所述第二節(jié)點的累計負載超過設(shè)定閾值;和/或,
[0150]所述第二節(jié)點的累計負載與第三節(jié)點的累計負載的比值和/或差值超過設(shè)定閾值。
[0151]可選地,所述設(shè)定的負載遷移條件還包括:當前時間與所述裝置最近一次進行數(shù)據(jù)流遷移處理的時間的時間間隔不小于設(shè)定閾值。
[0152]可選地,所述遷移模塊102具體用于根據(jù)以下公式確定設(shè)定時間段內(nèi)所述第一節(jié)點的任意一個下一跳工作節(jié)點的累計負載W:
[0153]W=cXW' +(l-c)Xy;
[0154]其中,y為所述裝置在所述設(shè)定時間段內(nèi)分配給所述任意一個下一跳工作節(jié)點的負載,r為所述任意一個下一跳工作節(jié)點在所述設(shè)定時間段的前一個時間段結(jié)束時的累計負載,c為常數(shù),且O <c< I。
[0155]可選地,所述遷移模塊102具體用于,向所述第二節(jié)點發(fā)送包含所述鍵值的狀態(tài)信息遷出指示,以及,向所述第三節(jié)點發(fā)送包含所述鍵值的狀態(tài)信息遷入指示;
[0156]其中,所述狀態(tài)信息遷出指示用于指示所述第二節(jié)點將本地生成的所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息發(fā)送給管理各工作節(jié)點的協(xié)調(diào)器;所述狀態(tài)信息遷入指示用于指示所述第三節(jié)點從管理各工作節(jié)點的協(xié)調(diào)器中獲取所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息,并將獲取的所述第一狀態(tài)信息與本地生成的對應(yīng)所述鍵值的數(shù)據(jù)流的第二狀態(tài)信息進行合并。
[0157]可選地,所述遷移模塊102還用于,在確定所述第二節(jié)點滿足設(shè)定的負載遷移條件之前,若接收到管理各工作節(jié)點的協(xié)調(diào)器發(fā)送的指示所述第二節(jié)點過載的信息,則調(diào)整設(shè)定的所述負載遷移條件。
[0158]可選地,所述確定模塊101還用于:根據(jù)需要分配給下一跳工作節(jié)點的數(shù)據(jù)流的鍵值,確定當前不存在處理該鍵值對應(yīng)的數(shù)據(jù)流的下一跳工作節(jié)點;所述遷移模塊102還用于,將所述需要分配給下一跳工作節(jié)點的數(shù)據(jù)流分配給當前所述第一節(jié)點的下一跳工作節(jié)點集合中具有最小累計負載的工作節(jié)點進行處理。
[0159]如圖11所示,為本發(fā)明實施例二提供的分布式數(shù)據(jù)流處理裝置示意圖,該裝置屬于上述第二節(jié)點,包括:
[0160]接收模塊111,用于接收第一節(jié)點發(fā)送的包含設(shè)定鍵值的狀態(tài)信息遷出指示,并將所述狀態(tài)信息遷出指示傳輸至發(fā)送模塊112 ;
[0161]發(fā)送模塊112,用于根據(jù)接收模塊111接收的所述狀態(tài)信息遷出指示,確定本地生成的所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息,并將確定的所述第一狀態(tài)信息發(fā)送給管理各工作節(jié)點的協(xié)調(diào)器。
[0162]如圖12所示,為本發(fā)明實施例三提供的分布式數(shù)據(jù)流處理裝置示意圖,該裝置屬于上述第三節(jié)點,包括:
[0163]接收模塊121,用于接收第一節(jié)點發(fā)送的包含設(shè)定鍵值的狀態(tài)信息遷入指示,并將所述狀態(tài)信息遷入指示傳輸至獲取模塊122 ;
[0164]獲取模塊122,用于根據(jù)接收模塊121接收的所述狀態(tài)信息遷入指示,從管理各工作節(jié)點的協(xié)調(diào)器中獲取所述第二節(jié)點發(fā)送到協(xié)調(diào)器中的所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息,并將獲取的所述第一狀態(tài)信息與本地生成的對應(yīng)所述鍵值的數(shù)據(jù)流的第二狀態(tài)信息進行合并。
[0165]如圖13所示,為本發(fā)明實施例四提供的分布式數(shù)據(jù)流處理裝置示意圖,該裝置屬于第一節(jié)點,包括:
[0166]處理器131,用于根據(jù)需要分配給所述第一節(jié)點的下一跳工作節(jié)點的數(shù)據(jù)流的鍵值,確定第二節(jié)點為處理所述鍵值對應(yīng)的數(shù)據(jù)流的下一跳工作節(jié)點,在確定所述第二節(jié)點滿足設(shè)定的負載遷移條件后,確定將所述需要分配給下一跳工作節(jié)點的數(shù)據(jù)流從所述第二節(jié)點遷移至第三節(jié)點進行處理,并確定指示所述第二節(jié)點和第三節(jié)點同步所述鍵值對應(yīng)的數(shù)據(jù)流的狀態(tài)信息的指示信息,將確定的指示信息傳輸給收發(fā)器132 ;其中,所述第二節(jié)點和第三節(jié)點屬于所述第一節(jié)點的下一跳工作節(jié)點集合,所述第三節(jié)點的累計負載小于所述第二節(jié)點的累計負載;
[0167]收發(fā)器132,用于向所述第二節(jié)點和第三節(jié)點發(fā)送所述指示信息。
[0168]可選地,所述第三節(jié)點為當前所述第一節(jié)點的下一跳工作節(jié)點集合中具有最小累計負載的工作節(jié)點。
[0169]可選地,所述設(shè)定的負載遷移條件包括:
[0170]所述第二節(jié)點的累計負載超過設(shè)定閾值;和/或,
[0171]所述第二節(jié)點的累計負載與第三節(jié)點的累計負載的比值和/或差值超過設(shè)定閾值。
[0172]可選地,所述設(shè)定的負載遷移條件還包括:當前時間與所述裝置最近一次進行數(shù)據(jù)流遷移處理的時間的時間間隔不小于設(shè)定閾值。
[0173]可選地,所述處理器131具體用于根據(jù)以下公式確定設(shè)定時間段內(nèi)所述第一節(jié)點的任意一個下一跳工作節(jié)點的累計負載W:
[0174]W=cXW' +(l-c)Xy;
[0175]其中,y為所述裝置在所述設(shè)定時間段內(nèi)分配給所述任意一個下一跳工作節(jié)點的負載,r為所述任意一個下一跳工作節(jié)點在所述設(shè)定時間段的前一個時間段結(jié)束時的累計負載,c為常數(shù),且O <c< I。
[0176]可選地,所述收發(fā)器132具體用于,向所述第二節(jié)點發(fā)送包含所述鍵值的狀態(tài)信息遷出指示,以及,向所述第三節(jié)點發(fā)送包含所述鍵值的狀態(tài)信息遷入指示;
[0177]其中,所述狀態(tài)信息遷出指示用于指示所述第二節(jié)點將本地生成的所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息發(fā)送給管理各工作節(jié)點的協(xié)調(diào)器;所述狀態(tài)信息遷入指示用于指示所述第三節(jié)點從管理各工作節(jié)點的協(xié)調(diào)器中獲取所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息,并將獲取的所述第一狀態(tài)信息與本地生成的對應(yīng)所述鍵值的數(shù)據(jù)流的第二狀態(tài)信息進行合并。
[0178]可選地,所述處理器131還用于,在確定所述第二節(jié)點滿足設(shè)定的負載遷移條件之前,若通過收發(fā)器132接收到管理各工作節(jié)點的協(xié)調(diào)器發(fā)送的指示所述第二節(jié)點過載的信息,則調(diào)整設(shè)定的所述負載遷移條件。
[0179]可選地,所述處理器131還用于:根據(jù)需要分配給下一跳工作節(jié)點的數(shù)據(jù)流的鍵值,在確定當前不存在處理該鍵值對應(yīng)的數(shù)據(jù)流的下一跳工作節(jié)點時,將所述需要分配給下一跳工作節(jié)點的數(shù)據(jù)流分配給當前所述第一節(jié)點的下一跳工作節(jié)點集合中具有最小累計負載的工作節(jié)點進行處理。
[0180]如圖14所示,為本發(fā)明實施例五提供的分布式數(shù)據(jù)流處理裝置示意圖,該裝置屬于上述第二節(jié)點,包括:
[0181]收發(fā)器141,用于接收第一節(jié)點發(fā)送的包含設(shè)定鍵值的狀態(tài)信息遷出指示,并將所述狀態(tài)信息遷出指示傳輸至處理器142 ;
[0182]處理器142,用于根據(jù)收發(fā)器141接收的所述狀態(tài)信息遷出指示,確定本地生成的所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息,并通過收發(fā)器141將確定的所述第一狀態(tài)信息發(fā)送給管理各工作節(jié)點的協(xié)調(diào)器。
[0183]如圖15所示,為本發(fā)明實施例六提供的分布式數(shù)據(jù)流處理裝置示意圖,該裝置屬于上述第三節(jié)點,包括:
[0184]收發(fā)器151,用于接收第一節(jié)點發(fā)送的包含設(shè)定鍵值的狀態(tài)信息遷入指示,并將所述狀態(tài)信息遷入指示傳輸至處理器152 ;
[0185]處理器152,用于根據(jù)收發(fā)器151接收的所述狀態(tài)信息遷入指示,通過收發(fā)器151從管理各工作節(jié)點的協(xié)調(diào)器中獲取所述第二節(jié)點發(fā)送到協(xié)調(diào)器中的所述鍵值對應(yīng)的數(shù)據(jù)流的第一狀態(tài)信息,并將獲取的所述第一狀態(tài)信息與本地生成的對應(yīng)所述鍵值的數(shù)據(jù)流的第二狀態(tài)信息進行合并。
[0186]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0187]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0188]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生