分布式流處理系統(tǒng)的容錯(cuò)方法、節(jié)點(diǎn)及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種分布式流處理系統(tǒng)的容錯(cuò)方法、節(jié)點(diǎn)及系統(tǒng),屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。該方法包括:獲取失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,并接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),重發(fā)數(shù)據(jù)由源節(jié)點(diǎn)始發(fā);根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān);如果與失效節(jié)點(diǎn)相關(guān),則處理接收到的重發(fā)數(shù)據(jù),并發(fā)送至下游節(jié)點(diǎn)。本發(fā)明通過(guò)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),并在確定與失效節(jié)點(diǎn)相關(guān)后,處理接收到的重發(fā)數(shù)據(jù),使得在與失效節(jié)點(diǎn)相關(guān)時(shí)才處理上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),不僅不影響其它節(jié)點(diǎn)的數(shù)據(jù)處理效率,而且不需要在本地存儲(chǔ)大量備份數(shù)據(jù),從而節(jié)省了本地資源。另外,由于不需要與上游或下游其它節(jié)點(diǎn)頻繁交互,因而提高了數(shù)據(jù)處理的效率。
【專(zhuān)利說(shuō)明】分布式流處理系統(tǒng)的容錯(cuò)方法、節(jié)點(diǎn)及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種分布式流處理系統(tǒng)的容錯(cuò)方法、節(jié)點(diǎn)及系統(tǒng)。
【背景技術(shù)】
[0002]隨著分布式計(jì)算技術(shù)在各個(gè)應(yīng)用領(lǐng)域的不斷擴(kuò)展,分布式流處理系統(tǒng)被廣泛應(yīng)用在眾多領(lǐng)域,例如,金融管理、網(wǎng)絡(luò)監(jiān)視、通訊數(shù)據(jù)管理、WEB應(yīng)用、傳感器網(wǎng)絡(luò)數(shù)據(jù)處理等。分布式流處理系統(tǒng)是指采用分布式系統(tǒng)處理數(shù)據(jù)流業(yè)務(wù)的互聯(lián)網(wǎng)軟件系統(tǒng),而分布式流處理系統(tǒng)的容錯(cuò)是指在系統(tǒng)內(nèi)部出現(xiàn)故障的情況下,仍然能夠向外部環(huán)境提供正確服務(wù)的能力。分布式流處理系統(tǒng)的容錯(cuò)方法是增強(qiáng)系統(tǒng)可靠性和可用性的主要手段,在系統(tǒng)內(nèi)的部分工作節(jié)點(diǎn)發(fā)生失效時(shí),系統(tǒng)能自動(dòng)從失效中恢復(fù)過(guò)來(lái),并且不會(huì)對(duì)分布式系統(tǒng)整個(gè)應(yīng)用系統(tǒng)的正常運(yùn)行產(chǎn)生嚴(yán)重影響。
[0003]現(xiàn)有技術(shù)中,應(yīng)用于分布式流處理系統(tǒng)的容錯(cuò)方法通常有如下幾種:
[0004](I)分布式流處理系統(tǒng)采用集中式數(shù)據(jù)備份,具體為:在源節(jié)點(diǎn)備份數(shù)據(jù),當(dāng)系統(tǒng)的流處理網(wǎng)絡(luò)重新建好后,源節(jié)點(diǎn)對(duì)失效前的一段數(shù)據(jù)進(jìn)行重發(fā),系統(tǒng)中的每個(gè)工作節(jié)點(diǎn)重新接收并處理源節(jié)點(diǎn)或上游各個(gè)工作節(jié)點(diǎn)重新發(fā)送的數(shù)據(jù)。(2)分布式流處理系統(tǒng)采用分布式數(shù)據(jù)備份,具體為:系統(tǒng)中的每個(gè)工作節(jié)點(diǎn)均備份前一段時(shí)間處理過(guò)的數(shù)據(jù),當(dāng)系統(tǒng)的流處理網(wǎng)絡(luò)重新建好后,系統(tǒng)中的各個(gè)工作節(jié)點(diǎn)將備份的數(shù)據(jù)重新發(fā)送至下游的各個(gè)工作節(jié)點(diǎn),下游的各個(gè)工作節(jié)點(diǎn)重新接收并處理上游各個(gè)工作節(jié)點(diǎn)重新發(fā)送的數(shù)據(jù),并在成功接收上游工作節(jié)點(diǎn)重新發(fā)送的數(shù)據(jù)后,向上游工作節(jié)點(diǎn)發(fā)送數(shù)據(jù)處理完成消息。當(dāng)上游工作節(jié)點(diǎn)收到下游工作節(jié)點(diǎn)的數(shù)據(jù)處理完成消息后,上游工作節(jié)點(diǎn)將備份的數(shù)據(jù)刪除。
[0005]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
[0006]針對(duì)上述第(I)種方法,當(dāng)系統(tǒng)的流處理網(wǎng)絡(luò)重新建好后,系統(tǒng)需要進(jìn)行整網(wǎng)回退,由源節(jié)點(diǎn)重新發(fā)送數(shù)據(jù),其它每個(gè)工作節(jié)點(diǎn)重新接收并處理源節(jié)點(diǎn)或上游工作節(jié)點(diǎn)重新發(fā)送的數(shù)據(jù),導(dǎo)致整網(wǎng)的數(shù)據(jù)處理效率被拖低,影響數(shù)據(jù)處理效率的同時(shí),浪費(fèi)節(jié)點(diǎn)資源。針對(duì)上述第(2)種方法,每個(gè)工作節(jié)點(diǎn)均需要備份處理過(guò)的數(shù)據(jù),存儲(chǔ)開(kāi)銷(xiāo)大。另外,由于上游工作節(jié)點(diǎn)和下游工作節(jié)點(diǎn)需要進(jìn)行頻繁交互,導(dǎo)致數(shù)據(jù)處理效率低。
【發(fā)明內(nèi)容】
[0007]為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種分布式流處理系統(tǒng)的容錯(cuò)方法、節(jié)點(diǎn)及系統(tǒng)。所述技術(shù)方案如下:
[0008]第一方面,提供了一種分布式流處理系統(tǒng)的容錯(cuò)方法,所述方法包括:
[0009]獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,并接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),所述重發(fā)數(shù)據(jù)由源節(jié)點(diǎn)始發(fā),所述上游節(jié)點(diǎn)為所述源節(jié)點(diǎn)或上游工作節(jié)點(diǎn);
[0010]根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān);
[0011]如果與所述失效節(jié)點(diǎn)相關(guān),則處理接收到的重發(fā)數(shù)據(jù),并發(fā)送至下游節(jié)點(diǎn)。[0012]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取所述分布式流處理系統(tǒng)中失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括:
[0013]接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
[0014]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān),包括:
[0015]根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息查詢(xún)預(yù)先存儲(chǔ)的節(jié)點(diǎn)關(guān)聯(lián)表,所述節(jié)點(diǎn)關(guān)聯(lián)表中記錄了所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)信息及對(duì)應(yīng)的相關(guān)度;
[0016]根據(jù)查詢(xún)結(jié)果確定是否與所述失效節(jié)點(diǎn)相關(guān)。
[0017]結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述處理接收到的重發(fā)數(shù)據(jù),包括:
[0018]獲取預(yù)先存儲(chǔ)的狀態(tài)信息,所述預(yù)先存儲(chǔ)的狀態(tài)信息至少包括當(dāng)前的節(jié)點(diǎn)狀態(tài)信息及后續(xù)處理數(shù)據(jù)所需的數(shù)據(jù)結(jié)果信息;
[0019]根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)。
[0020]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)之后,還包括:
[0021]接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的;
[0022]根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息;
[0023]如果需要存儲(chǔ)狀態(tài)信息,則根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0024]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,包括:
[0025]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0026]判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0027]如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息。
[0028]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述重發(fā)數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述重發(fā)數(shù)據(jù)中的;
[0029]所述根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)之后,還包括:
[0030]根據(jù)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息;
[0031]如果需要存儲(chǔ)狀態(tài)信息,則根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0032]結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,包括:
[0033]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0034]判斷所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0035]如果所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息。
[0036]結(jié)合第一方面,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān)之后,還包括:
[0037]如果與所述失效節(jié)點(diǎn)不相關(guān),則對(duì)接收到的重發(fā)數(shù)據(jù)不做處理。
[0038]結(jié)合第一方面的第八種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式中,所述對(duì)接收到的重發(fā)數(shù)據(jù)不做處理之后,還包括:
[0039]接收所述上游節(jié)點(diǎn)發(fā)送的其它數(shù)據(jù),所述其它數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述其它數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述其它數(shù)據(jù)中的;
[0040]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0041]判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0042]如果所述其它數(shù) 據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則對(duì)所述其它數(shù)據(jù)進(jìn)行處理。
[0043]結(jié)合第一方面的第九種可能的實(shí)現(xiàn)方式,在第一方面的第十種可能的實(shí)現(xiàn)方式中,所述對(duì)所述其它數(shù)據(jù)進(jìn)行處理之后,還包括:
[0044]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0045]判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0046]如果所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息,并根據(jù)所述其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0047]結(jié)合第一方面的第八種可能的實(shí)現(xiàn)方式,在第一方面的第十一種可能的實(shí)現(xiàn)方式中,所述對(duì)接收到的重發(fā)數(shù)據(jù)不做處理之后,還包括:
[0048]接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的;
[0049]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0050]判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)是否一致;
[0051]如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)一致,則對(duì)所述上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理。
[0052]結(jié)合第一方面的第十一種可能的實(shí)現(xiàn)方式,在第一方面的第十二種可能的實(shí)現(xiàn)方式中,所述對(duì)所述上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理之后,還包括:
[0053]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0054]判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0055]如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息,并根據(jù)接收當(dāng)前接收的信號(hào)包之前接收的其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0056]第二方面,提供了一種分布式流處理系統(tǒng)的容錯(cuò)方法,所述方法包括:
[0057]獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0058]根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù),并將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),由所述下游節(jié)點(diǎn)根據(jù)所述下游節(jié)點(diǎn)與所述失效節(jié)點(diǎn)是否相關(guān)來(lái)確定是否處理所述重發(fā)數(shù)據(jù)。
[0059]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括:
[0060]接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
[0061]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之后,還包括:
[0062]將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中,將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)。
[0063]結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),包括:
[0064]將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù),并將所述重發(fā)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到所述重發(fā)數(shù)據(jù)中,將攜帶有分組標(biāo)識(shí)的重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。
[0065]結(jié)合第二方面的第二種或第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之前,還包括:
[0066]根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)。
[0067]第三方面,提供了一種工作節(jié)點(diǎn),所述工作節(jié)點(diǎn)包括:
[0068]第一獲取模塊,用于獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0069]第一接收模塊,用于接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),所述重發(fā)數(shù)據(jù)由源節(jié)點(diǎn)始發(fā),所述上游節(jié)點(diǎn)為源節(jié)點(diǎn)或上游工作節(jié)點(diǎn);
[0070]第一確定模塊,用于根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān);
[0071]第一處理模塊,用于當(dāng)與所述失效節(jié)點(diǎn)相關(guān)時(shí),處理接收到的重發(fā)數(shù)據(jù),并發(fā)送至下游節(jié)點(diǎn)。
[0072]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述第一獲取模塊,用于接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
[0073]結(jié)合第三方面,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述第一確定模塊,包括:
[0074]查詢(xún)單元,用于根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息查詢(xún)預(yù)先存儲(chǔ)的節(jié)點(diǎn)關(guān)聯(lián)表,所述節(jié)點(diǎn)關(guān)聯(lián)表中記錄了所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)信息及對(duì)應(yīng)的相關(guān)度;
[0075]確定單元,用于根據(jù)查詢(xún)結(jié)果確定是否與所述失效節(jié)點(diǎn)相關(guān)。
[0076]結(jié)合第三方面,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述第一處理模塊,包括:
[0077]獲取單元,用于獲取預(yù)先存儲(chǔ)的狀態(tài)信息,所述預(yù)先存儲(chǔ)的狀態(tài)信息至少包括當(dāng)前的節(jié)點(diǎn)狀態(tài)信息及后續(xù)處理數(shù)據(jù)所需的數(shù)據(jù)結(jié)果信息;
[0078]處理單元,用于根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)。
[0079]結(jié)合第三方面的第三種可能的實(shí)現(xiàn)方式,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0080]第二接收模塊,用于接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的;
[0081]第二確定模塊,用于根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息;
[0082]第一存儲(chǔ)模塊,用于當(dāng)需要存儲(chǔ)狀態(tài)信息時(shí),根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0083]結(jié)合第三方面的第四種可能的實(shí)現(xiàn)方式,在第三方面的第五種可能的實(shí)現(xiàn)方式中,所述第二確定模塊,包括:
[0084]獲取單元,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí);
[0085]第一確定單元,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0086]判斷單元,用于判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0087]第二確定單元,用于當(dāng)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息。
[0088]結(jié)合第三方面的第三種可能的實(shí)現(xiàn)方式,在第三方面的第六種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0089]第三確定模塊,用于當(dāng)上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí)時(shí),,根據(jù)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述重發(fā)數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述重發(fā)數(shù)據(jù)中的;
[0090]第二存儲(chǔ)模塊,用于當(dāng)需要存儲(chǔ)狀態(tài)信息時(shí),根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0091]結(jié)合第三方面的第六種可能的實(shí)現(xiàn)方式,在第三方面的第七種可能的實(shí)現(xiàn)方式中,所述第三確定模塊,包括:
[0092]獲取單元,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí);
[0093]第一確定單元,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0094]判斷單元,用于判斷所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0095]第二確定單元,用于當(dāng)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息。
[0096]結(jié)合第三方面,在第三方面的第八種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0097]第四確定模塊,用于當(dāng)確定與所述失效節(jié)點(diǎn)不相關(guān)時(shí),對(duì)接收到的重發(fā)數(shù)據(jù)不做處理。
[0098]結(jié)合第三方面的第八種可能的實(shí)現(xiàn)方式,在第三方面的第九種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0099]第三接收模塊,用于接收所述上游節(jié)點(diǎn)發(fā)送的其它數(shù)據(jù),所述其它數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述其它數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述其它數(shù)據(jù)中的;
[0100]第二獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí);
[0101]第五確定模塊,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0102]第一判斷模塊,用于判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0103]第二處理模塊,用于當(dāng)所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),對(duì)所述其它數(shù)據(jù)進(jìn)行處理。
[0104]結(jié)合第三方面的第九種可能的實(shí)現(xiàn)方式,在第三方面的第十種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0105]第三獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí);
[0106]第六確定模塊,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0107]第二判斷模塊,用于判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0108]第七確定模塊,用于當(dāng)所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息;
[0109]第三存儲(chǔ)模塊,用于根據(jù)所述其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0110]結(jié)合第三方面的第八種可能的實(shí)現(xiàn)方式,在第三方面的第十一種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0111]第四接收模塊,用于接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的;
[0112]第四獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0113]第三判斷模塊,用于判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)是否一致;
[0114]第三處理模塊,用于當(dāng)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)一致時(shí),對(duì)所述上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理。
[0115]結(jié)合第三方面的第十一種可能的實(shí)現(xiàn)方式,在第三方面的第十二種可能的實(shí)現(xiàn)方式中,所述工作節(jié)點(diǎn),還包括:
[0116]第五獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí);[0117]第八確定模塊,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0118]第四判斷模塊,用于判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0119]第九確定模塊,用于當(dāng)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息;
[0120]第四存儲(chǔ)模塊,用于根據(jù)接收當(dāng)前接收的信號(hào)包之前接收的其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0121]第四方面,提供了一種源節(jié)點(diǎn),所述源節(jié)點(diǎn)包括:
[0122]第一獲取模塊,用于獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0123]第二獲取模塊,用于根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù);
[0124]發(fā)送模塊,用于將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),由所述下游節(jié)點(diǎn)根據(jù)所述下游節(jié)點(diǎn)與所述失效節(jié)點(diǎn)是否相關(guān)來(lái)確定是否處理所述重發(fā)數(shù)據(jù)。
[0125]結(jié)合第四方面,在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述第一獲取模塊用于接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
[0126]結(jié)合第四方面,在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊,包括:
[0127]第一添加單元,用于將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中;
[0128]第一發(fā)送單元,用于將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)。
[0129]結(jié)合第四方面,在第四方面的第三種可能的實(shí)現(xiàn)方式中,所述發(fā)送模塊,包括:
[0130]第二添加單元,用于將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù),并將所述重發(fā)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到所述重發(fā)數(shù)據(jù)中;
[0131]第二發(fā)送單元,用于將攜帶有分組標(biāo)識(shí)的重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。
[0132]結(jié)合第四方面的第二種或第三種可能的實(shí)現(xiàn)方式,在第四方面的第四種可能的實(shí)現(xiàn)方式中,所述源節(jié)點(diǎn),還包括:
[0133]分組編號(hào)模塊,用于根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)。
[0134]第五方面,提供了一種分布式流處理系統(tǒng)的容錯(cuò)系統(tǒng),所述系統(tǒng)包括:源節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn);
[0135]其中,所述工作節(jié)點(diǎn)如上述第三方面提供的節(jié)點(diǎn);所述源節(jié)點(diǎn)如上述第四方面提供的源節(jié)點(diǎn)。
[0136]本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:
[0137]通過(guò)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),并在確定與失效節(jié)點(diǎn)相關(guān)后,處理接收到的重發(fā)數(shù)據(jù),使得在與失效節(jié)點(diǎn)相關(guān)時(shí)才處理上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),不僅不影響其它節(jié)點(diǎn)的數(shù)據(jù)處理效率,而且不需要在本地存儲(chǔ)大量備份數(shù)據(jù),從而節(jié)省了本地資源。另外,由于不需要與上游或下游其它節(jié)點(diǎn)頻繁交互,因而提高了數(shù)據(jù)處理的效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0138]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0139]圖1是本發(fā)明實(shí)施例提供的一種分布式流處理系統(tǒng)的容錯(cuò)方法的實(shí)施環(huán)境示意圖;
[0140]圖2是本發(fā)明實(shí)施例提供的一種分布式流處理系統(tǒng)的容錯(cuò)系統(tǒng)結(jié)構(gòu)示意圖;
[0141]圖3是本發(fā)明實(shí)施例提供的一種分布式流處理系統(tǒng)的流處理網(wǎng)絡(luò)拓?fù)渎酚杀淼慕Y(jié)構(gòu)示意圖;
[0142]圖4是本發(fā)明實(shí)施例一提供的一種分布式流處理系統(tǒng)的容錯(cuò)方法的方法流程圖;
[0143]圖5是本發(fā)明實(shí)施例一提供的另一種分布式流處理系統(tǒng)的容錯(cuò)方法的流程圖;
[0144]圖6是本發(fā)明實(shí)施例二提供的一種分布式流處理系統(tǒng)的容錯(cuò)方法的方法流程圖;
[0145]圖7是本發(fā)明實(shí)施例三提供的一種分布式流處理系統(tǒng)的容錯(cuò)方法的方法流程圖;
[0146]圖8是本發(fā)明實(shí)施例四提供的一種工作節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0147]圖9是本發(fā)明實(shí)施例五提供的一種源節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0148]圖10是本發(fā)明實(shí)施例六提供的一種分布式流處理系統(tǒng)的容錯(cuò)系統(tǒng)的結(jié)構(gòu)示意圖;
[0149]圖11是本發(fā)明實(shí)施例七提供的一種工作節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0150]圖12是本發(fā)明實(shí)施例八提供的一種源節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0151]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0152]如圖1所示,其示出了本發(fā)明實(shí)施例提供的分布式流處理系統(tǒng)的容錯(cuò)方法的實(shí)施環(huán)境結(jié)構(gòu)示意圖。該實(shí)施環(huán)境為一個(gè)分布式流處理系統(tǒng),包括源節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn)。具體地,如圖2所示,為了保證分布式流處理系統(tǒng)的正常工作,圖1所示的實(shí)施環(huán)境示意圖中配置有收集流應(yīng)用路由信息模塊201、節(jié)點(diǎn)管理模塊202和存儲(chǔ)模塊203。
[0153]其中,收集流應(yīng)用路由信息模塊201包括集中管理實(shí)體,集中管理實(shí)體用于監(jiān)控該分布式流處理系統(tǒng)中的各個(gè)工作節(jié)點(diǎn)以及源節(jié)點(diǎn)的工作狀況。由于分布式流處理系統(tǒng)加載應(yīng)用的時(shí)候會(huì)涉及到分配相應(yīng)的節(jié)點(diǎn)及之間的鏈路關(guān)系,因此,集中管理實(shí)體存儲(chǔ)了該分布式流處理系統(tǒng)對(duì)應(yīng)的流處理網(wǎng)絡(luò)拓?fù)渎酚杀?。如圖3所示,其示出了一種流處理網(wǎng)絡(luò)拓?fù)渎酚杀淼慕Y(jié)構(gòu)意圖,該分布式流處理系統(tǒng)中的各個(gè)工作節(jié)點(diǎn)根據(jù)該流處理網(wǎng)絡(luò)拓?fù)渎酚杀斫邮詹⑻幚碛稍垂?jié)點(diǎn)流入的數(shù)據(jù)。
[0154]此外,集中管理實(shí)體還存儲(chǔ)了備份節(jié)點(diǎn)表,該備份節(jié)點(diǎn)表存儲(chǔ)了系統(tǒng)中的各個(gè)工作節(jié)點(diǎn)的備份節(jié)點(diǎn)。當(dāng)分布式流處理系統(tǒng)中的某個(gè)工作節(jié)點(diǎn)失效后,集中管理實(shí)體可以控制備份節(jié)點(diǎn)頂替失效節(jié)點(diǎn),保證該分布式流處理系統(tǒng)可以快速恢復(fù)處理網(wǎng)絡(luò)。其中,備份節(jié)點(diǎn)可以由集中管理實(shí)體初始化,后續(xù)可以根據(jù)系統(tǒng)的負(fù)載均衡策略和調(diào)度策略進(jìn)行動(dòng)態(tài)調(diào)
難
iF.0
[0155]結(jié)合圖1,節(jié)點(diǎn)管理模塊202用于管理圖1所示的分布式流處理系統(tǒng)中的一個(gè)源節(jié)點(diǎn)和多個(gè)工作節(jié)點(diǎn)。其中,源節(jié)點(diǎn)為分布式流處理系統(tǒng)中數(shù)據(jù)流入的節(jié)點(diǎn),工作節(jié)點(diǎn)為該分布式流處理系統(tǒng)中除源節(jié)點(diǎn)之外的其它所有節(jié)點(diǎn)。在圖1所示的分布式流處理系統(tǒng)中,由源節(jié)點(diǎn)統(tǒng)一備份處理過(guò)的數(shù)據(jù),各個(gè)工作節(jié)點(diǎn)以及源節(jié)點(diǎn)實(shí)時(shí)保存自己的狀態(tài)信息。
[0156]本發(fā)明實(shí)施例中,在分布式流處理系統(tǒng)正常運(yùn)行的過(guò)程中,源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行標(biāo)識(shí),并按照時(shí)間間隔、數(shù)據(jù)塊大小等條件周期性備份,然后將標(biāo)識(shí)后的數(shù)據(jù)發(fā)送到下游節(jié)點(diǎn)。各個(gè)工作節(jié)點(diǎn)接收上游的源節(jié)點(diǎn)或上游的工作節(jié)點(diǎn)發(fā)送的數(shù)據(jù),并根據(jù)數(shù)據(jù)的標(biāo)識(shí)信息周期性地存儲(chǔ)狀態(tài)信息,該狀態(tài)信息至少包括當(dāng)前的節(jié)點(diǎn)狀態(tài)信息和后續(xù)處理數(shù)據(jù)需要用到的數(shù)據(jù)結(jié)果信息。當(dāng)該分布式流處理系統(tǒng)中的某一工作節(jié)點(diǎn)失效后,源節(jié)點(diǎn)重發(fā)緩存的數(shù)據(jù),和失效節(jié)點(diǎn)相關(guān)的工作節(jié)點(diǎn)重新處理所涉及的數(shù)據(jù)。另外,為了使集中管理實(shí)體可以實(shí)時(shí)監(jiān)控系統(tǒng)中的各個(gè)工作節(jié)點(diǎn)以及源節(jié)點(diǎn)的工作狀況,各個(gè)工作節(jié)點(diǎn)以及源節(jié)點(diǎn)定時(shí)向集中管理實(shí)體上報(bào)心跳信息,告知工作狀況。
[0157]存儲(chǔ)模塊203用于存儲(chǔ)所有和容錯(cuò)相關(guān)的信息,包括流處理網(wǎng)絡(luò)拓?fù)渎酚杀?,備份?jié)點(diǎn)表,各個(gè)工作節(jié)點(diǎn)及源節(jié)點(diǎn)的狀態(tài)信息等。其中,存儲(chǔ)模塊203包括但不限于可以通過(guò)兩種形式實(shí)現(xiàn):第一種是單點(diǎn)存儲(chǔ)實(shí)體,即所有和容錯(cuò)相關(guān)的信息集中存儲(chǔ)在某個(gè)節(jié)點(diǎn);第二種是分布式存儲(chǔ)實(shí)體,該存儲(chǔ)方式是一種共享式的、多個(gè)節(jié)點(diǎn)協(xié)作式的存儲(chǔ)方式。此夕卜,本發(fā)明實(shí)施例不對(duì)存儲(chǔ)模塊203涉及的存儲(chǔ)介質(zhì)進(jìn)行限定,存儲(chǔ)介質(zhì)可以是硬盤(pán),也可以是內(nèi)存等。
[0158]實(shí)施例一
[0159]結(jié)合上述內(nèi)容,本發(fā)明實(shí)施例提供了一種分布式流處理系統(tǒng)的容錯(cuò)方法。以分布式流處理系統(tǒng)中的除源節(jié)點(diǎn)之外的某個(gè)工作節(jié)點(diǎn)執(zhí)行該方法的角度為例,參見(jiàn)圖4,本發(fā)明實(shí)施例提供的方法流程包括:
[0160]401:獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,并接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),重發(fā)數(shù)據(jù)由源節(jié)點(diǎn)始發(fā),上游節(jié)點(diǎn)為源節(jié)點(diǎn)或上游工作節(jié)點(diǎn);
[0161]402:根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān);
[0162]403:如果與失效節(jié)點(diǎn)相關(guān),則處理接收到的重發(fā)數(shù)據(jù),并發(fā)送至下游節(jié)點(diǎn)。
[0163]優(yōu)選地,獲取分布式流處理系統(tǒng)中失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括:
[0164]接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,集中管理實(shí)體用于監(jiān)控分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
[0165]優(yōu)選地,根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān),包括:
[0166]根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息查詢(xún)預(yù)先存儲(chǔ)的節(jié)點(diǎn)關(guān)聯(lián)表,節(jié)點(diǎn)關(guān)聯(lián)表中記錄了分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)信息及對(duì)應(yīng)的相關(guān)度;
[0167]根據(jù)查詢(xún)結(jié)果確定是否與失效節(jié)點(diǎn)相關(guān)。
[0168]優(yōu)選地,處理接收到的重發(fā)數(shù)據(jù),包括:
[0169]獲取預(yù)先存儲(chǔ)的狀態(tài)信息,預(yù)先存儲(chǔ)的狀態(tài)信息至少包括當(dāng)前的節(jié)點(diǎn)狀態(tài)信息及后續(xù)處理數(shù)據(jù)所需的數(shù)據(jù)結(jié)果信息;
[0170]根據(jù)預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)。
[0171]優(yōu)選地,根據(jù)預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)之后,還包括:
[0172]接收上游節(jié)點(diǎn)發(fā)送的信號(hào)包,信號(hào)包中攜帶有分組標(biāo)識(shí),分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到信號(hào)包中的;
[0173]根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息;[0174]如果需要存儲(chǔ)狀態(tài)信息,則根據(jù)重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0175]優(yōu)選地,根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,包括:
[0176]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0177]判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0178]如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息。
[0179]優(yōu)選地,上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)重發(fā)數(shù)據(jù)進(jìn)行分組編號(hào)后添加到重發(fā)數(shù)據(jù)中的;
[0180]根據(jù)預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)之后,還包括:
[0181]根據(jù)重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息;
[0182]如果需要存儲(chǔ)狀態(tài)信息,則根據(jù)重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0183]優(yōu)選地,根據(jù)重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,包括:
[0184]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0185]判斷重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是
否一致;
[0186]如果重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息。
[0187]優(yōu)選地,根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān)之后,還包括:
[0188]如果與失效節(jié)點(diǎn)不相關(guān),則對(duì)接收到的重發(fā)數(shù)據(jù)不做處理。
[0189]優(yōu)選地,對(duì)接收到的重發(fā)數(shù)據(jù)不做處理之后,還包括:
[0190]接收上游節(jié)點(diǎn)發(fā)送的其它數(shù)據(jù),其它數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)其它數(shù)據(jù)進(jìn)行分組編號(hào)后添加到其它數(shù)據(jù)中的;
[0191]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0192]判斷其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是
否一致;
[0193]如果其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則對(duì)其它數(shù)據(jù)進(jìn)行處理。
[0194]優(yōu)選地,對(duì)其它數(shù)據(jù)進(jìn)行處理之后,還包括:
[0195]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí);
[0196]判斷其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是
否一致;
[0197]如果其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息,并根據(jù)其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。[0198]優(yōu)選地,對(duì)接收到的重發(fā)數(shù)據(jù)不做處理之后,還包括:
[0199]接收上游節(jié)點(diǎn)發(fā)送的信號(hào)包,信號(hào)包中攜帶有分組標(biāo)識(shí),分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到信號(hào)包中的;
[0200]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0201]判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)是否一致;
[0202]如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)一致,則對(duì)上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理。
[0203]優(yōu)選地,對(duì)上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理之后,還包括:
[0204]獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí);
[0205]判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致;
[0206]如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息,并根據(jù)接收當(dāng)前接收的信號(hào)包之前接收的其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
[0207]以分布式流處理系統(tǒng)中的源節(jié)點(diǎn)執(zhí)行該方法的角度為例,參見(jiàn)圖5,本發(fā)明實(shí)施例提供的方法流程包括:
[0208]501:獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息;
[0209]502:根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù),并將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),由下游節(jié)點(diǎn)根據(jù)下游節(jié)點(diǎn)與失效節(jié)點(diǎn)是否相關(guān)來(lái)確定是否處理重發(fā)數(shù)據(jù)。
[0210]優(yōu)選地,獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括:
[0211]接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,集中管理實(shí)體用于監(jiān)控分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
[0212]優(yōu)選地,將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之后,還包括:
[0213]將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中,將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)。
[0214]優(yōu)選地,將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),包括:
[0215]將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù),并將重發(fā)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到重發(fā)數(shù)據(jù)中,將攜帶有分組標(biāo)識(shí)的重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。
[0216]優(yōu)選地,將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之前,還包括:
[0217]根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)。
[0218]本發(fā)明實(shí)施例提供的方法,通過(guò)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),并在確定與失效節(jié)點(diǎn)相關(guān)后,處理接收到的重發(fā)數(shù)據(jù),使得在與失效節(jié)點(diǎn)相關(guān)時(shí)才處理上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),不僅不影響其它節(jié)點(diǎn)的數(shù)據(jù)處理效率,而且不需要在本地存儲(chǔ)大量備份數(shù)據(jù),從而節(jié)省了本地資源。另外,由于不需要與上游或下游其它節(jié)點(diǎn)頻繁交互,因而提高了數(shù)據(jù)處理的效率。
[0219]實(shí)施例二[0220]結(jié)合圖1所示的實(shí)施環(huán)境結(jié)構(gòu)示意圖、圖2所示的分布式流處理系統(tǒng)的結(jié)構(gòu)示意圖和上述實(shí)施例一的內(nèi)容,本發(fā)明實(shí)施例提供了一種分布式流處理系統(tǒng)的容錯(cuò)方法。為了便于說(shuō)明,本發(fā)明實(shí)施例以分布式流處理系統(tǒng)中的一個(gè)工作節(jié)點(diǎn)失效后,源節(jié)點(diǎn)在發(fā)送重發(fā)數(shù)據(jù)時(shí),根據(jù)接收的數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí),并將該分組標(biāo)識(shí)添加到信號(hào)包中發(fā)送給下游節(jié)點(diǎn),使得下游節(jié)點(diǎn)在接收信號(hào)包后根據(jù)信號(hào)包中攜帶的分組標(biāo)識(shí)進(jìn)行狀態(tài)信息存儲(chǔ)為例,對(duì)本實(shí)施例提供的方法進(jìn)行詳細(xì)地解釋說(shuō)明。參見(jiàn)圖6,本發(fā)明實(shí)施例提供的方法流程包括:
[0221]601:源節(jié)點(diǎn)和工作節(jié)點(diǎn)獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息。
[0222]其中,源節(jié)點(diǎn)和工作節(jié)點(diǎn)獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息的方式,可以有多種。由于該分布式流處理系統(tǒng)中的集中管理實(shí)體可以監(jiān)控該分布式流處理系統(tǒng)中各個(gè)節(jié)點(diǎn)的工作狀況,且各個(gè)節(jié)點(diǎn)需要定時(shí)向集中管理實(shí)體上報(bào)心跳信息。因此,集中管理實(shí)體可以根據(jù)各個(gè)節(jié)點(diǎn)上報(bào)的心跳信息實(shí)時(shí)獲取該分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,并且可以在獲取到失效節(jié)點(diǎn)的節(jié)點(diǎn)信息后將該失效節(jié)點(diǎn)的節(jié)點(diǎn)信息廣播給該分布式流處理系統(tǒng)中的源節(jié)點(diǎn)和各個(gè)工作節(jié)點(diǎn)。因此,源節(jié)點(diǎn)和工作節(jié)點(diǎn)獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息可以通過(guò)接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息來(lái)實(shí)現(xiàn)。當(dāng)然,源節(jié)點(diǎn)和工作節(jié)點(diǎn)也可以通過(guò)其它方式來(lái)獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,本發(fā)明實(shí)施例對(duì)此不作具體限定。
[0223]602:源節(jié)點(diǎn)根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù),并將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。
[0224]在分布式流流處理系統(tǒng)中,當(dāng)某一節(jié)點(diǎn)失效后,該分布式流處理系統(tǒng)可以采取一些措施使系統(tǒng)恢復(fù)正常工作,從而不影響系統(tǒng)進(jìn)行正常地?cái)?shù)據(jù)處理。為了保證從失效節(jié)點(diǎn)失效到系統(tǒng)恢復(fù)正常的這段時(shí)間內(nèi),各個(gè)工作節(jié)點(diǎn)不會(huì)因漏處理數(shù)據(jù)而使數(shù)據(jù)處理過(guò)程出現(xiàn)錯(cuò)誤。因此,當(dāng)系統(tǒng)恢復(fù)正常工作后,源節(jié)點(diǎn)需要根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù),并將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。本發(fā)明實(shí)施例對(duì)源節(jié)點(diǎn)根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù)以及將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)的方式不作具體限定。
[0225]其中,分布式流處理系統(tǒng)可以采取很多措施來(lái)使該系統(tǒng)恢復(fù)正常工作,例如,可以由系統(tǒng)中的集中管理實(shí)體控制失效節(jié)點(diǎn)的備份節(jié)點(diǎn)取代失效節(jié)點(diǎn)來(lái)繼續(xù)處理數(shù)據(jù);也可以將失效節(jié)點(diǎn)的功能遷移到其它工作節(jié)點(diǎn),并在系統(tǒng)的流處理網(wǎng)絡(luò)拓?fù)渎酚杀硭⑿潞箝_(kāi)始繼續(xù)處理數(shù)據(jù);還可以是在失效節(jié)點(diǎn)重新啟動(dòng)之后繼續(xù)處理數(shù)據(jù)。
[0226]優(yōu)選地,為了在發(fā)送重發(fā)數(shù)據(jù)時(shí),便于對(duì)重發(fā)數(shù)據(jù)進(jìn)行管理,以及為了使下游節(jié)點(diǎn)后續(xù)可以根據(jù)源節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)中的分組情況存儲(chǔ)狀態(tài)信息,源節(jié)點(diǎn)在將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之前,還包括:根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)。另外,為了使下游節(jié)點(diǎn)能夠很好地區(qū)分接收的數(shù)據(jù)來(lái)自于源節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)的哪個(gè)分組,源節(jié)點(diǎn)將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之后,還包括:將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中,將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)。具體地,源節(jié)點(diǎn)在每發(fā)完一組數(shù)據(jù)之后,向下游節(jié)點(diǎn)發(fā)送一個(gè)攜帶該組數(shù)據(jù)的分組標(biāo)識(shí)的信號(hào)包。因此,當(dāng)下游節(jié)點(diǎn)接收到該信號(hào)包后,即可根據(jù)該信號(hào)包中攜帶的分組標(biāo)識(shí)獲得上一段時(shí)間接收的重發(fā)數(shù)據(jù)的分組標(biāo)識(shí)。另外,本發(fā)明實(shí)施例對(duì)源節(jié)點(diǎn)將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中的方式以及將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)的方式不作具體限定。
[0227]關(guān)于源節(jié)點(diǎn)根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào)的具體實(shí)現(xiàn)方法,本發(fā)明實(shí)施例不作具體限定。具體實(shí)施時(shí),當(dāng)源節(jié)點(diǎn)根據(jù)時(shí)間間隔來(lái)為接收的數(shù)據(jù)進(jìn)行分組編號(hào)時(shí),可以設(shè)置一個(gè)固定時(shí)間間隔,并將每個(gè)固定時(shí)間間隔內(nèi)接收的數(shù)據(jù)分為一組。例如,源節(jié)點(diǎn)可以設(shè)置1min(分鐘)為一個(gè)固定時(shí)間間隔。在接收數(shù)據(jù)時(shí),將前1min接收的數(shù)據(jù)分為第一組,將1min至20min接收的數(shù)據(jù)分為第二組等等。當(dāng)源節(jié)點(diǎn)根據(jù)數(shù)據(jù)大小來(lái)為接收的數(shù)據(jù)進(jìn)行分組編號(hào)時(shí),可以在接收數(shù)據(jù)之前,設(shè)置每組數(shù)據(jù)包含的數(shù)據(jù)的大小,例如,可以設(shè)置每組數(shù)據(jù)包含10個(gè)數(shù)據(jù)。因此,在接收數(shù)據(jù)時(shí),可以對(duì)接收的每個(gè)數(shù)據(jù)進(jìn)行編號(hào),并將編號(hào)為ι-?ο的數(shù)據(jù)分為第一組,以此類(lèi)推。例如,可以將接收的前100個(gè)數(shù)據(jù)分別編號(hào)為1-100,然后將編號(hào)為1-10的數(shù)據(jù)分為第一組,將編號(hào)為11-20的數(shù)據(jù)分為第二組等等。當(dāng)然,源節(jié)點(diǎn)還可以采用其它方法對(duì)接收的數(shù)據(jù)進(jìn)行分組編號(hào),本發(fā)明實(shí)施例對(duì)此不作具體限定。
[0228]603:工作節(jié)點(diǎn)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)。
[0229]當(dāng)源節(jié)點(diǎn)發(fā)送重發(fā)數(shù)據(jù)后,工作節(jié)點(diǎn)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)。關(guān)于工作節(jié)點(diǎn)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)的方式,本發(fā)明實(shí)施例不作具體限定。另外,當(dāng)源節(jié)點(diǎn)在發(fā)送重發(fā)數(shù)據(jù)時(shí),對(duì)發(fā)送 的重發(fā)數(shù)據(jù)進(jìn)行分組標(biāo)識(shí),并在發(fā)完每組數(shù)據(jù)之后,發(fā)送了攜帶該組數(shù)據(jù)的分組標(biāo)識(shí)的信號(hào)包,則工作節(jié)點(diǎn)在接收源節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)之后,也將接收源節(jié)點(diǎn)發(fā)送的信號(hào)包。
[0230]需要說(shuō)明的是,如果該工作節(jié)點(diǎn)為源節(jié)點(diǎn)之下的第一級(jí)節(jié)點(diǎn),則該工作節(jié)點(diǎn)的上游節(jié)點(diǎn)即為源節(jié)點(diǎn);如果該工作節(jié)點(diǎn)為源節(jié)點(diǎn)之下的第二級(jí)節(jié)點(diǎn)或第二級(jí)以后的其它級(jí)節(jié)點(diǎn),則該上游節(jié)點(diǎn)為該網(wǎng)絡(luò)拓?fù)渎酚杀碇性摴ぷ鞴?jié)點(diǎn)的上一級(jí)工作節(jié)點(diǎn)。
[0231]604:工作節(jié)點(diǎn)根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān),如果與失效節(jié)點(diǎn)相關(guān),則執(zhí)行步驟605 ;如果與失效節(jié)點(diǎn)不相關(guān),則執(zhí)行步驟607。
[0232]由于本發(fā)明實(shí)施例提供的方法支持當(dāng)該分布式流處理系統(tǒng)中出現(xiàn)失效節(jié)點(diǎn)后,與失效節(jié)點(diǎn)相關(guān)的工作節(jié)點(diǎn)需要重新處理源節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),而與失效節(jié)點(diǎn)不相關(guān)的工作節(jié)點(diǎn)則不需要處理源節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)。因此,工作節(jié)點(diǎn)接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)后,需要根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān)。
[0233]具體地,在分布式流處理系統(tǒng)中,當(dāng)失效節(jié)點(diǎn)為工作節(jié)點(diǎn)的一級(jí)或多級(jí)下游節(jié)點(diǎn)時(shí),則工作節(jié)點(diǎn)確定失效節(jié)點(diǎn)和自己相關(guān),否則,工作節(jié)點(diǎn)確定失效節(jié)點(diǎn)和自己不相關(guān)。其中,工作節(jié)點(diǎn)根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與失效節(jié)點(diǎn)相關(guān)的方式可以有很多種,具體實(shí)施時(shí),包括但不限于采用如下方式:
[0234]根據(jù)失效節(jié)點(diǎn)的節(jié)點(diǎn)信息查詢(xún)預(yù)先存儲(chǔ)的節(jié)點(diǎn)關(guān)聯(lián)表,根據(jù)查詢(xún)結(jié)果確定是否與失效節(jié)點(diǎn)相關(guān)。其中,節(jié)點(diǎn)關(guān)聯(lián)表中記錄了工作節(jié)點(diǎn)與分布式流處理系統(tǒng)中的其它各個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)信息及對(duì)應(yīng)的相關(guān)度。為了便于對(duì)節(jié)點(diǎn)關(guān)聯(lián)表進(jìn)行解釋說(shuō)明,結(jié)合圖3所示的流處理網(wǎng)絡(luò)拓?fù)渎酚杀韥?lái)進(jìn)行說(shuō)明。在圖3中,編號(hào)為I的節(jié)點(diǎn)為源節(jié)點(diǎn),節(jié)點(diǎn)2-6為其它節(jié)點(diǎn)。假設(shè)工作節(jié)點(diǎn)為節(jié)點(diǎn)2,則根據(jù)圖3獲得的工作節(jié)點(diǎn)與該分布式流處理系統(tǒng)中的其它各個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)關(guān)聯(lián)表如表一所示。在表一中,相關(guān)度為O表示該節(jié)點(diǎn)與工作節(jié)點(diǎn)不相關(guān),相關(guān)度為I表示失效節(jié)點(diǎn)和工作節(jié)點(diǎn)相關(guān),N/A表示工作節(jié)點(diǎn)與節(jié)點(diǎn)編號(hào)對(duì)應(yīng)的節(jié)點(diǎn)無(wú)拓?fù)潢P(guān)系。
[0235]表一
[0236]
【權(quán)利要求】
1.一種分布式流處理系統(tǒng)的容錯(cuò)方法,其特征在于,所述方法包括: 獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,并接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),所述重發(fā)數(shù)據(jù)由源節(jié)點(diǎn)始發(fā),所述上游節(jié)點(diǎn)為所述源節(jié)點(diǎn)或上游工作節(jié)點(diǎn); 根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān); 如果與所述失效節(jié)點(diǎn)相關(guān),則處理接收到的重發(fā)數(shù)據(jù),并發(fā)送至下游節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取所述分布式流處理系統(tǒng)中失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括: 接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān),包括: 根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息查詢(xún)預(yù)先存儲(chǔ)的節(jié)點(diǎn)關(guān)聯(lián)表,所述節(jié)點(diǎn)關(guān)聯(lián)表中記錄了所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)信息及對(duì)應(yīng)的相關(guān)度; 根據(jù)查詢(xún)結(jié)果確定是否與所述失效節(jié)點(diǎn)相關(guān)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述處理接收到的重發(fā)數(shù)據(jù),包括: 獲取預(yù)先存儲(chǔ)的狀態(tài)信息,所述預(yù)先存儲(chǔ)的狀態(tài)信息至少包括當(dāng)前的節(jié)點(diǎn)狀態(tài)信息及后續(xù)處理數(shù)據(jù)所需的數(shù)據(jù)結(jié)果信息; 根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)之后,還包括: 接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的; 根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息; 如果需要存儲(chǔ)狀態(tài)信息,則根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,包括: 獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí); 判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述重發(fā)數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述重發(fā)數(shù)據(jù)中的; 所述根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)之后,還包括: 根據(jù)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息; 如果需要存儲(chǔ)狀態(tài)信息,則根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)息,包括: 獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí); 判斷所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 如果所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān)之后,還包括: 如果與所述失效節(jié)點(diǎn)不相關(guān),則對(duì)接收到的重發(fā)數(shù)據(jù)不做處理。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述對(duì)接收到的重發(fā)數(shù)據(jù)不做處理之后,還包括: 接收所述上游節(jié)點(diǎn)發(fā)送的其它數(shù)據(jù),所述其它數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述其它數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述其它數(shù)據(jù)中的; 獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí); 判斷所述其它數(shù)據(jù)中 攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 如果所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則對(duì)所述其它數(shù)據(jù)進(jìn)行處理。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述對(duì)所述其它數(shù)據(jù)進(jìn)行處理之后,還包括: 獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí); 判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 如果所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息,并根據(jù)所述后續(xù)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
12.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述對(duì)接收到的重發(fā)數(shù)據(jù)不做處理之后,還包括: 接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的; 獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí); 判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)是否一致;如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)一致,則對(duì)所述上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述對(duì)所述上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理之后,還包括:獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),并確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí); 判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 如果當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致,則確定需要存儲(chǔ)狀態(tài)信息,并根據(jù)接收當(dāng)前接收的信號(hào)包之前接收的其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
14.一種分布式流處理系統(tǒng)的容錯(cuò)方法,其特征在于,所述方法包括: 獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息; 根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù),并將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),由所述下游節(jié)點(diǎn)根據(jù)所述下游節(jié)點(diǎn)與所述失效節(jié)點(diǎn)是否相關(guān)來(lái)確定是否處理所述重發(fā)數(shù)據(jù)。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,包括: 接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè) 節(jié)點(diǎn)的工作狀況。
16.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之后,還包括: 將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中,將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)。
17.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),包括: 將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù),并將所述重發(fā)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到所述重發(fā)數(shù)據(jù)中,將攜帶有分組標(biāo)識(shí)的重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。
18.根據(jù)權(quán)利要求16或17所述的方法,其特征在于,所述將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)之前,還包括: 根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)。
19.一種工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn)包括: 第一獲取模塊,用于獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息; 第一接收模塊,用于接收上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù),所述重發(fā)數(shù)據(jù)由源節(jié)點(diǎn)始發(fā),所述上游節(jié)點(diǎn)為所述源節(jié)點(diǎn)或上游工作節(jié)點(diǎn); 第一確定模塊,用于根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息確定是否與所述失效節(jié)點(diǎn)相關(guān); 第一處理模塊,用于當(dāng)與所述失效節(jié)點(diǎn)相關(guān)時(shí),處理接收到的重發(fā)數(shù)據(jù),并發(fā)送至下游節(jié)點(diǎn)。
20.根據(jù)權(quán)利要求19所述的工作節(jié)點(diǎn),其特征在于,所述第一獲取模塊,用于接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
21.根據(jù)權(quán)利要求19所述的工作節(jié)點(diǎn),其特征在于,所述第一確定模塊,包括:查詢(xún)單元,用于根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息查詢(xún)預(yù)先存儲(chǔ)的節(jié)點(diǎn)關(guān)聯(lián)表,所述節(jié)點(diǎn)關(guān)聯(lián)表中記錄了所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)信息及對(duì)應(yīng)的相關(guān)度; 確定單元,用于根據(jù)查詢(xún)結(jié)果確定是否與所述失效節(jié)點(diǎn)相關(guān)。
22.根據(jù)權(quán)利要求19所述的工作節(jié)點(diǎn),其特征在于,所述第一處理模塊,包括: 獲取單元,用于獲取預(yù)先存儲(chǔ)的狀態(tài)信息,所述預(yù)先存儲(chǔ)的狀態(tài)信息至少包括當(dāng)前的節(jié)點(diǎn)狀態(tài)信息及后續(xù)處理數(shù)據(jù)所需的數(shù)據(jù)結(jié)果信息; 處理單元,用于根據(jù)所述預(yù)先存儲(chǔ)的狀態(tài)信息處理接收到的重發(fā)數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括: 第二接收模塊,用于接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的; 第二確定模塊,用于根據(jù)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)息; 第一存儲(chǔ)模塊,用于當(dāng)需要存儲(chǔ)狀態(tài)信息時(shí),根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
24.根據(jù)權(quán)利要求23所述的工作節(jié)點(diǎn),其特征在于,所述第二確定模塊,包括: 獲取單元,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí); 第一確定單元,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí); 判斷單元,用于判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 第二確定單元,用于當(dāng)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息。
25.根據(jù)權(quán)利要求22所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括: 第三確定模塊,用于當(dāng)上游節(jié)點(diǎn)發(fā)送的重發(fā)數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí)時(shí),根據(jù)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)確定是否需要存儲(chǔ)狀態(tài)信息,所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述重發(fā)數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述重發(fā)數(shù)據(jù)中的; 第二存儲(chǔ)模塊,用于當(dāng)需要存儲(chǔ)狀態(tài)信息時(shí),根據(jù)所述重發(fā)數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
26.根據(jù)權(quán)利要求25所述的工作節(jié)點(diǎn),其特征在于,所述第三確定模塊,包括: 獲取單元,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí); 第一確定單元,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí); 判斷單元,用于判斷所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 第二確定單元,用于當(dāng)所述重發(fā)數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息。
27.根據(jù)權(quán)利要求19所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括: 第四確定模塊,用于當(dāng)確定與所述失效節(jié)點(diǎn)不相關(guān)時(shí),對(duì)接收到的重發(fā)數(shù)據(jù)不做處理。
28.根據(jù)權(quán)利要求27所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括:第三接收模塊,用于接收所述上游節(jié)點(diǎn)發(fā)送的其它數(shù)據(jù),所述其它數(shù)據(jù)中攜帶有對(duì)應(yīng)的分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)所述其它數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述其它數(shù)據(jù)中的; 第二獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí); 第五確定模塊,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí); 第一判斷模塊,用于判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 第二處理模塊,用于當(dāng)所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),對(duì)所述其它數(shù)據(jù)進(jìn)行處理。
29.根據(jù)權(quán)利要求28所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括: 第三獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí); 第六確定模塊,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的數(shù)據(jù)中攜帶的分組標(biāo)識(shí); 第二判斷模塊,用于判斷所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 第七確定模塊,用于 當(dāng)所述其它數(shù)據(jù)中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息; 第三存儲(chǔ)模塊,用于根據(jù)所述其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
30.根據(jù)權(quán)利要求27所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括: 第四接收模塊,用于接收所述上游節(jié)點(diǎn)發(fā)送的信號(hào)包,所述信號(hào)包中攜帶有分組標(biāo)識(shí),所述分組標(biāo)識(shí)為源節(jié)點(diǎn)對(duì)流入的數(shù)據(jù)進(jìn)行分組編號(hào)后添加到所述信號(hào)包中的; 第四獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí); 第三判斷模塊,用于判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)是否一致; 第三處理模塊,用于當(dāng)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)一致時(shí),對(duì)所述上游節(jié)點(diǎn)發(fā)送的后續(xù)數(shù)據(jù)進(jìn)行處理。
31.根據(jù)權(quán)利要求30所述的工作節(jié)點(diǎn),其特征在于,所述工作節(jié)點(diǎn),還包括: 第五獲取模塊,用于獲取預(yù)先存儲(chǔ)的分組標(biāo)識(shí); 第八確定模塊,用于確定所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí),所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)為之前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí); 第四判斷模塊,用于判斷當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)是否一致; 第九確定模塊,用于當(dāng)當(dāng)前接收到的信號(hào)包中攜帶的分組標(biāo)識(shí)與所述預(yù)先存儲(chǔ)的分組標(biāo)識(shí)對(duì)應(yīng)的預(yù)設(shè)分組標(biāo)識(shí)不一致時(shí),確定需要存儲(chǔ)狀態(tài)信息; 第四存儲(chǔ)模塊,用于根據(jù)接收當(dāng)前接收的信號(hào)包之前接收的其它數(shù)據(jù)的處理結(jié)果存儲(chǔ)狀態(tài)信息。
32.—種源節(jié)點(diǎn),其特征在于,所述源節(jié)點(diǎn)包括:第一獲取模塊,用于獲取分布式流處理系統(tǒng)中的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息; 第二獲取模塊,用于根據(jù)所述失效節(jié)點(diǎn)的節(jié)點(diǎn)信息獲取緩存的數(shù)據(jù); 發(fā)送模塊,用于將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn),由所述下游節(jié)點(diǎn)根據(jù)所述下游節(jié)點(diǎn)與所述失效節(jié)點(diǎn)是否相關(guān)來(lái)確定是否處理所述重發(fā)數(shù)據(jù)。
33.根據(jù)權(quán)利要求32所述的源節(jié)點(diǎn),其特征在于,所述第一獲取模塊,用于接收集中管理實(shí)體發(fā)送的失效節(jié)點(diǎn)的節(jié)點(diǎn)信息,所述集中管理實(shí)體用于監(jiān)控所述分布式流處理系統(tǒng)中的各個(gè)節(jié)點(diǎn)的工作狀況。
34.根據(jù)權(quán)利要求32所述的源節(jié)點(diǎn),其特征在于,所述發(fā)送模塊,包括: 第一添加單元,用于將流入的數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到信號(hào)包中; 第一發(fā)送單元,用于將攜帶有分組標(biāo)識(shí)的信號(hào)包發(fā)送至下游節(jié)點(diǎn)。
35.根據(jù)權(quán)利要求32所述的源節(jié)點(diǎn),其特征在于,所述發(fā)送模塊,包括: 第二添加單元,用于將緩存的數(shù)據(jù)作為重發(fā)數(shù)據(jù),并將所述重發(fā)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)添加到所述重發(fā)數(shù)據(jù)中; 第二發(fā)送單元,用于將攜帶有分組標(biāo)識(shí)的重發(fā)數(shù)據(jù)發(fā)送至下游節(jié)點(diǎn)。
36.根據(jù)權(quán)利要求34或35所述的源節(jié)點(diǎn),其特征在于,所述源節(jié)點(diǎn),還包括: 分組編號(hào)模塊,用于根據(jù)接收數(shù)據(jù)的時(shí)間間隔或數(shù)據(jù)大小對(duì)接收到的數(shù)據(jù)進(jìn)行分組編號(hào),得到每個(gè)數(shù)據(jù)對(duì)應(yīng)的分組標(biāo)識(shí)。
37.一種分布式流處理系統(tǒng)的容錯(cuò)系統(tǒng),其特征在于,所述系統(tǒng)包括多個(gè)工作節(jié)點(diǎn)和源節(jié)點(diǎn); 其中,所述多個(gè)工作節(jié)點(diǎn)中的每個(gè)工作節(jié)點(diǎn)如權(quán)利要求19至31中任一項(xiàng)權(quán)利要求所述的工作節(jié)點(diǎn); 所述源節(jié)點(diǎn)如權(quán)利要求32至36中任一項(xiàng)權(quán)利要求所述的源節(jié)點(diǎn)。
【文檔編號(hào)】H04L12/24GK104038364SQ201310754620
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】潘璐伽, 何誠(chéng) 申請(qǐng)人:華為技術(shù)有限公司