本發(fā)明涉及分布式集群系統(tǒng)領(lǐng)域,具體地,涉及一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法及裝置,以及節(jié)點(diǎn)啟動方法及裝置。
背景技術(shù):
分布式集群系統(tǒng)包括多個節(jié)點(diǎn)。在利用分布式集群系統(tǒng)處理任務(wù)時,需要對每個節(jié)點(diǎn)使用唯一標(biāo)識(ID)進(jìn)行標(biāo)記,用于區(qū)分各個節(jié)點(diǎn)。在進(jìn)行標(biāo)記時,傳統(tǒng)的標(biāo)記方法是使用具有典型排他特征的信息來生成節(jié)點(diǎn)唯一ID,例如,ID為節(jié)點(diǎn)的IP地址、MAC地址等等。之后,利用該ID對各節(jié)點(diǎn)進(jìn)行標(biāo)記。由于在分布式環(huán)境中,各節(jié)點(diǎn)生存狀態(tài)是無法預(yù)知的,任何一個節(jié)點(diǎn)都有可能出現(xiàn)離線情況。在節(jié)點(diǎn)離線時,系統(tǒng)需要對節(jié)點(diǎn)進(jìn)行故障恢復(fù)操作。然而,使用傳統(tǒng)的節(jié)點(diǎn)標(biāo)記方法,有時會出現(xiàn)一些問題。
假設(shè)針對節(jié)點(diǎn)1,該節(jié)點(diǎn)1的ID為該節(jié)點(diǎn)1的IP地址,例如,10.4.44.2。該節(jié)點(diǎn)1正在執(zhí)行任務(wù)1,則存在如下對應(yīng)信息:任務(wù)1——節(jié)點(diǎn)1:10.4.44.2。當(dāng)由于網(wǎng)絡(luò)故障或者斷電等原因造成節(jié)點(diǎn)1離線時,此時,系統(tǒng)會對節(jié)點(diǎn)1進(jìn)行故障恢復(fù)操作。如圖1所示,從發(fā)現(xiàn)節(jié)點(diǎn)1離線,到執(zhí)行節(jié)點(diǎn)1的故障恢復(fù)操作,再到操作執(zhí)行完成,通常會消耗一定的時間,例如,從時間T1到時間T2,再到時間T3。假設(shè)在從發(fā)現(xiàn)節(jié)點(diǎn)1離線到啟動節(jié)點(diǎn)1的故障恢復(fù)這段期間,節(jié)點(diǎn)1又再次啟動上線,并且在節(jié)點(diǎn)1的故障恢復(fù)操作完成之前(即,圖1中時間T3之前),該節(jié)點(diǎn)1又被分配新任務(wù),如任務(wù)2,則還存在如下對應(yīng)信息:任務(wù)2——節(jié)點(diǎn)1:10.4.44.2。而此時,節(jié)點(diǎn)1的故障恢復(fù)操作仍在進(jìn)行。由于任務(wù)1和任務(wù)2都對應(yīng)于10.4.44.2這一節(jié)點(diǎn)ID,因此,當(dāng)完成節(jié)點(diǎn)1的故障恢復(fù)操作時,任務(wù)1和任務(wù)2都被進(jìn)行了故障恢復(fù)。這樣,就會導(dǎo)致數(shù)據(jù)運(yùn)行出錯,原本能夠順利執(zhí)行的任務(wù)未被正常執(zhí)行。
為了解決這一問題,相關(guān)技術(shù)中采用如下技術(shù)方案:將節(jié)點(diǎn)的啟動過程分為兩個階段,一個是預(yù)啟動過程,一個是正式啟動過程。當(dāng)節(jié)點(diǎn)被預(yù)啟動時,集群會首先查詢該節(jié)點(diǎn)的狀態(tài),以判斷該節(jié)點(diǎn)是否當(dāng)前正處于故障恢復(fù)狀態(tài)。如果不是,則該節(jié)點(diǎn)被正式啟動。如果是,則延時等待,直到該節(jié)點(diǎn)的故障恢復(fù)狀態(tài)結(jié)束為止,再正式啟動該節(jié)點(diǎn)。
上述解決方案中,離線節(jié)點(diǎn)必須等候故障恢復(fù)結(jié)束后才能被啟動。如果離線節(jié)點(diǎn)的故障恢復(fù)時間比較長,則該節(jié)點(diǎn)的等候時間也隨之增長,導(dǎo)致該節(jié)點(diǎn)遲遲無法被啟動。甚至,如果對離線節(jié)點(diǎn)執(zhí)行故障恢復(fù)的節(jié)點(diǎn)也出現(xiàn)連續(xù)離線的情況,則會導(dǎo)致最初的離線節(jié)點(diǎn)的等候時間加倍增長,從而大大影響系統(tǒng)的處理效率。
技術(shù)實(shí)現(xiàn)要素:
本公開的目的是提供一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法及裝置,以及節(jié)點(diǎn)啟動方法及裝置,以解決現(xiàn)有技術(shù)的不足。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法,包括:在接收到節(jié)點(diǎn)的啟動請求時,生成第一啟動標(biāo)識,其中,所述第一啟動標(biāo)識用于表示所述節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息;根據(jù)所述第一啟動標(biāo)識和所述節(jié)點(diǎn)的固有標(biāo)識,生成標(biāo)記信息,其中,所述標(biāo)記信息包括所述第一啟動標(biāo)識和所述固有標(biāo)識;以及,利用所述標(biāo)記信息對所述節(jié)點(diǎn)進(jìn)行標(biāo)記。
可選地,所述標(biāo)記信息還包括分隔符,所述分隔符用于將所述第一啟動標(biāo)識與所述固有標(biāo)識隔開。
可選地,所述固有標(biāo)識包括以下中的至少一者:所述節(jié)點(diǎn)的IP地址、所述節(jié)點(diǎn)的MAC地址、所述節(jié)點(diǎn)的主機(jī)名稱。
可選地,所述方法還包括:檢測所述節(jié)點(diǎn)是否離線;當(dāng)檢測到所述節(jié)點(diǎn)離線時,檢測是否接收到所述節(jié)點(diǎn)的再次啟動請求;當(dāng)接收到所述節(jié)點(diǎn)的再次啟動請求時,生成第二啟動標(biāo)識,其中,所述第二啟動標(biāo)識用于表示所述節(jié)點(diǎn)的再次啟動請求對應(yīng)的啟動信息;利用所述第二啟動標(biāo)識替換所述節(jié)點(diǎn)的所述標(biāo)記信息中的所述第一啟動標(biāo)識,得到更新后的標(biāo)記信息;利用所述更新后的標(biāo)記信息重新對所述節(jié)點(diǎn)進(jìn)行標(biāo)記。
本發(fā)明還提供一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)啟動方法,包括:檢測是否接收到離線節(jié)點(diǎn)的啟動請求,其中,所述離線節(jié)點(diǎn)標(biāo)記有標(biāo)記信息,所述標(biāo)記信息包括所述離線節(jié)點(diǎn)的固有標(biāo)識和第一啟動標(biāo)識,所述第一啟動標(biāo)識用于表示所述離線節(jié)點(diǎn)在離線前的最后一次啟動請求對應(yīng)的啟動信息;在接收到所述離線節(jié)點(diǎn)的啟動請求的情況下,根據(jù)所述離線節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息,生成第二啟動標(biāo)識;利用所述第二啟動標(biāo)識替換所述標(biāo)記信息中的所述第一啟動標(biāo)識,得到更新后的標(biāo)記信息;利用所述更新后的標(biāo)記信息對所述離線節(jié)點(diǎn)重新進(jìn)行標(biāo)記;響應(yīng)于所述啟動請求,啟動所述離線節(jié)點(diǎn)。
可選地,所述標(biāo)記信息還包括分隔符,所述分隔符用于將所述第一啟動標(biāo)識與所述固有標(biāo)識隔開。
可選地,所述固有標(biāo)識包括以下中的至少一者:所述離線節(jié)點(diǎn)的IP地址、所述離線節(jié)點(diǎn)的MAC地址、所述離線節(jié)點(diǎn)的主機(jī)名稱。
本發(fā)明還提供一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記裝置,包括:第一啟動標(biāo)識生成模塊,用于在節(jié)點(diǎn)啟動時,生成第一啟動標(biāo)識,其中,所述第一啟動標(biāo)識用于表示所述節(jié)點(diǎn)本次啟動時的啟動信息;標(biāo)記信息生成模塊,用于根據(jù)所述第一啟動標(biāo)識和所述節(jié)點(diǎn)的固有標(biāo)識,生成標(biāo)記信息,其中,所述標(biāo)記信息包括所述第一啟動標(biāo)識和所述固有標(biāo)識;以及,第一標(biāo)記模塊,用于利用所述標(biāo)記信息對所述節(jié)點(diǎn)進(jìn)行標(biāo)記。
可選地,所述裝置還包括:離線檢測模塊,用于檢測所述節(jié)點(diǎn)是否離線;第一啟動檢測模塊,用于當(dāng)檢測到所述節(jié)點(diǎn)離線時,檢測所述節(jié)點(diǎn)是否被重新啟動;第二啟動標(biāo)識生成模塊,用于當(dāng)檢測到所述節(jié)點(diǎn)被重新啟動時,生成第二啟動標(biāo)識,其中,所述第二啟動標(biāo)識用于表示所述節(jié)點(diǎn)被重新啟動時的啟動信息;第一標(biāo)記信息更新模塊,用于利用所述第二啟動標(biāo)識替換所述節(jié)點(diǎn)的所述標(biāo)記信息中的所述第一啟動標(biāo)識,得到更新后的標(biāo)記信息;所述第一標(biāo)記模塊還用于利用所述更新后的標(biāo)記信息重新對所述節(jié)點(diǎn)進(jìn)行標(biāo)記。
本發(fā)明還提供一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)啟動裝置,包括:第二啟動檢測模塊,用于檢測是否接收到離線節(jié)點(diǎn)的啟動請求,其中,所述離線節(jié)點(diǎn)標(biāo)記有標(biāo)記信息,所述標(biāo)記信息包括所述離線節(jié)點(diǎn)的固有標(biāo)識和第一啟動標(biāo)識,所述第一啟動標(biāo)識用于表示所述離線節(jié)點(diǎn)在離線前的最后一次啟動請求對應(yīng)的啟動信息;第三啟動標(biāo)識生成模塊,用于在接收到所述離線節(jié)點(diǎn)的啟動請求的情況下,根據(jù)所述離線節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息,生成第二啟動標(biāo)識;第二標(biāo)記信息更新模塊,用于利用所述第二啟動標(biāo)識替換所述標(biāo)記信息中的所述第一啟動標(biāo)識,得到更新后的標(biāo)記信息;第二標(biāo)記模塊,用于利用所述更新后的標(biāo)記信息對所述離線節(jié)點(diǎn)重新進(jìn)行標(biāo)記;以及,啟動模塊,用于響應(yīng)于所述啟動請求,啟動所述離線節(jié)點(diǎn)。
利用上述技術(shù)方案,在節(jié)點(diǎn)每次啟動時,系統(tǒng)都會為該節(jié)點(diǎn)生成一與本次啟動相對應(yīng)的啟動標(biāo)識,并基于該啟動標(biāo)識和該節(jié)點(diǎn)的固有標(biāo)識來生成標(biāo)記信息,最后利用該標(biāo)記信息對該節(jié)點(diǎn)進(jìn)行標(biāo)記。由于同一節(jié)點(diǎn)在每次啟動時生成的啟動標(biāo)識不一樣,因此,該節(jié)點(diǎn)的標(biāo)記信息的生命周期與該節(jié)點(diǎn)一次啟動到停止的時長相同,并且僅在本次生命周期內(nèi)有效。這樣,當(dāng)節(jié)點(diǎn)離線,系統(tǒng)對該節(jié)點(diǎn)執(zhí)行故障恢復(fù)時,由于節(jié)點(diǎn)每次啟動時標(biāo)記信息都不同,因此,故障恢復(fù)只會對上一次的現(xiàn)場進(jìn)行清理,不會影響本次節(jié)點(diǎn)的啟動及該節(jié)點(diǎn)執(zhí)行新任務(wù)。換言之,節(jié)點(diǎn)啟動時無需考慮集群是否正在對自己之前現(xiàn)場進(jìn)行處理,也無需等待故障恢復(fù)結(jié)束,節(jié)點(diǎn)可以正常啟動,并在啟動后可立即接受任務(wù)。這樣,不僅可以提高節(jié)點(diǎn)的恢復(fù)速度,并且還可以提升系統(tǒng)的處理效率。另外,通過為節(jié)點(diǎn)在不同生命周期動態(tài)配置不同的標(biāo)記信息,不僅能夠解決現(xiàn)有技術(shù)方案中的問題,并且相比于現(xiàn)有技術(shù)方案中要設(shè)置判斷邏輯的做法,本公開提供的上述方案使得系統(tǒng)總體的設(shè)計(jì)難度大大降低,操作簡單且設(shè)計(jì)巧妙,具有廣泛的適用性。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說明。
附圖說明
附圖是用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的具體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1是根據(jù)一示例性實(shí)施例提供的一種節(jié)點(diǎn)故障恢復(fù)過程隨時間的狀態(tài)變化圖。
圖2是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法的流程圖。
圖3是根據(jù)一示例性實(shí)施例提供的另一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法的流程圖。
圖4是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)啟動方法的流程圖。
圖5是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記裝置的框圖。
圖6是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)啟動裝置的框圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
圖2是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法的流程圖。如圖2所示,該方法可以包括以下步驟。
在步驟201中,在接收到節(jié)點(diǎn)的啟動請求時,生成第一啟動標(biāo)識,其中,該第一啟動標(biāo)識用于表示該節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息。
示例地,在分布式集群系統(tǒng)中可以包括多個節(jié)點(diǎn)。針對每個節(jié)點(diǎn),系統(tǒng)都可以在接收到該節(jié)點(diǎn)的啟動請求時,為該節(jié)點(diǎn)生成相對應(yīng)的第一啟動標(biāo)識。第一啟動標(biāo)識用于表示該節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息。
在本公開中,啟動信息可以例如包括但不限于以下中的至少一者:啟動時間、節(jié)點(diǎn)進(jìn)程號、通用唯一標(biāo)識符(Universally Unique Identifier,UUID)、隨機(jī)值等等。以啟動信息為啟動時間為例,假設(shè)系統(tǒng)接收到節(jié)點(diǎn)1的啟動請求的時間為2016年7月1日10點(diǎn)整,則系統(tǒng)可以將該時間作為上述啟動時間,并基于該啟動時間為該節(jié)點(diǎn)1生成第一啟動標(biāo)識,例如,節(jié)點(diǎn)1的第一啟動標(biāo)識為:2016/07/01/10:00:00。
在步驟202中,根據(jù)所述第一啟動標(biāo)識和所述節(jié)點(diǎn)的固有標(biāo)識,生成標(biāo)記信息,其中,該標(biāo)記信息可以包括所述第一啟動標(biāo)識和所述固有標(biāo)識。
在分布式集群系統(tǒng)中,每個節(jié)點(diǎn)具有相對應(yīng)的固有標(biāo)識,該固有標(biāo)識可以為節(jié)點(diǎn)的具有典型排他特征的信息。示例地,固有標(biāo)識可以包括但不限于以下中的至少一者:節(jié)點(diǎn)的IP地址,節(jié)點(diǎn)的MAC地址、節(jié)點(diǎn)的主機(jī)名稱。針對不同的節(jié)點(diǎn),其所對應(yīng)的固有標(biāo)識是唯一的。
系統(tǒng)可以根據(jù)在步驟201中為節(jié)點(diǎn)生成的第一啟動標(biāo)識,以及該節(jié)點(diǎn)的固有標(biāo)識,來生成針對該節(jié)點(diǎn)的標(biāo)記信息。示例地,該標(biāo)記信息為這二者的組合,例如,固有標(biāo)識+第一啟動標(biāo)識。
針對不同的節(jié)點(diǎn),其固有標(biāo)識不同,因此,各個標(biāo)記信息也是唯一的。此外,由于標(biāo)記信息中保留有節(jié)點(diǎn)的固有標(biāo)識,因此,當(dāng)系統(tǒng)執(zhí)行與節(jié)點(diǎn)生命周期無關(guān)的操作,例如,獲取節(jié)點(diǎn)的日志等操作時,系統(tǒng)仍可以通過標(biāo)記信息中的固有標(biāo)識部分來識別出節(jié)點(diǎn),因此,不會對這些操作的執(zhí)行造成影響。
為了便于系統(tǒng)更加方便快捷地獲知節(jié)點(diǎn)的固有標(biāo)識,以快速識別節(jié)點(diǎn)身份,可選地,標(biāo)記信息中還可以包括分隔符,該分隔符可以用于將第一啟動標(biāo)識與固有標(biāo)識隔開。示例地,標(biāo)記信息為:固有標(biāo)識+分隔符+第一啟動標(biāo)識。例如,假設(shè)固有標(biāo)識為節(jié)點(diǎn)的IP地址,分隔符為“_”,第一啟動標(biāo)識為啟動時間,則相應(yīng)的標(biāo)記信息為:IP地址_啟動時間。
這樣,系統(tǒng)在識別節(jié)點(diǎn)身份時,首先定位標(biāo)記信息中的分隔符。當(dāng)找到該分隔符后,便可以根據(jù)預(yù)先已知的固有標(biāo)識與該分隔符之間的位置關(guān)系(例如,位于該分隔符之前,還是之后),快速地獲取到節(jié)點(diǎn)的固有標(biāo)識,以便快速識別該節(jié)點(diǎn)的身份。
針對同一節(jié)點(diǎn),由于其每次的啟動請求所對應(yīng)的啟動信息不同,因此,該節(jié)點(diǎn)在不同生命周期(節(jié)點(diǎn)的一次啟動到停止)期間的第一啟動標(biāo)識不同。由此,在本公開中,節(jié)點(diǎn)的標(biāo)記信息僅在該節(jié)點(diǎn)的本次生命周期期間有效,其會隨著生命周期的不同而動態(tài)變化,并且每個標(biāo)記信息也是唯一的。
在步驟203中,利用標(biāo)記信息對該節(jié)點(diǎn)進(jìn)行標(biāo)記。此時,為該節(jié)點(diǎn)所標(biāo)記的標(biāo)記信息就作為該節(jié)點(diǎn)的ID。
圖3是根據(jù)一示例性實(shí)施例提供的另一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記方法的流程圖。如圖3所示,在圖2所示的方法的基礎(chǔ)上,該方法還可以包括以下步驟。
在步驟204中,檢測該節(jié)點(diǎn)是否離線。
在步驟205中,當(dāng)檢測到該節(jié)點(diǎn)離線時,檢測是否接收到該節(jié)點(diǎn)的再次啟動請求。
示例地,在節(jié)點(diǎn)因網(wǎng)絡(luò)故障或者斷電等原因離線后又重新加入系統(tǒng)中時,節(jié)點(diǎn)會重新發(fā)送啟動請求。這里,將重新發(fā)送的啟動請求稱為再次啟動請求。這樣,集群會接收到該節(jié)點(diǎn)的再次啟動請求。
在步驟206中,當(dāng)接收到該節(jié)點(diǎn)的再次啟動請求時,生成第二啟動標(biāo)識,其中,該第二啟動標(biāo)識用于表示該節(jié)點(diǎn)的再次啟動請求對應(yīng)的啟動信息。如何生成第二啟動標(biāo)識的方法同前面描述的如何生成第一啟動標(biāo)識的方法相類似,此處不再贅述。
在步驟207中,利用該第二啟動標(biāo)識替換該節(jié)點(diǎn)的標(biāo)記信息中的第一啟動標(biāo)識,得到更新后的標(biāo)記信息。
示例地,假設(shè)節(jié)點(diǎn)離線之前的標(biāo)記信息為:固有標(biāo)識+第一啟動標(biāo)識,則在步驟207后,更新后的標(biāo)記信息為:固有標(biāo)識+第二啟動標(biāo)識。再例如,假設(shè)節(jié)點(diǎn)離線之前的標(biāo)記信息為:固有標(biāo)識+分隔符+第一啟動標(biāo)識,則在步驟207后,更新后的標(biāo)記信息為:固有標(biāo)識+分隔符+第二啟動標(biāo)識。
在步驟208中,利用更新后的標(biāo)記信息重新對節(jié)點(diǎn)進(jìn)行標(biāo)記。此時,為該節(jié)點(diǎn)所重新標(biāo)記的標(biāo)記信息就作為該節(jié)點(diǎn)的新的ID。
圖4是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)啟動方法的流程圖。如圖4所示,該方法可以包括以下步驟。
在步驟401中,檢測是否接收到離線節(jié)點(diǎn)的啟動請求,其中,該離線節(jié)點(diǎn)標(biāo)記有標(biāo)記信息,該標(biāo)記信息可以包括該離線節(jié)點(diǎn)的固有標(biāo)識和第一啟動標(biāo)識,該第一啟動標(biāo)識用于表示該離線節(jié)點(diǎn)在離線前的最后一次啟動請求對應(yīng)的啟動信息。
為了便于系統(tǒng)更方便、快速地識別出節(jié)點(diǎn)身份,可選地,標(biāo)記信息還包括分隔符,該分隔符用于將第一啟動標(biāo)識與固有標(biāo)識隔開。
示例地,固有標(biāo)識可以例如包括但不限于以下中的至少一者:所述離線節(jié)點(diǎn)的IP地址、所述離線節(jié)點(diǎn)的MAC地址、所述離線節(jié)點(diǎn)的主機(jī)名稱。另外,啟動信息可以例如包括但不限于以下中的至少一者:啟動時間、節(jié)點(diǎn)進(jìn)程號、UUID、隨機(jī)值等等。
假設(shè)針對節(jié)點(diǎn)1,其在一啟動期間標(biāo)記有一標(biāo)記信息,該標(biāo)記信息中包括該節(jié)點(diǎn)1的固有標(biāo)識和第一啟動標(biāo)識,該第一啟動標(biāo)識表示該節(jié)點(diǎn)1在本次啟動時對應(yīng)的啟動信息。一段時間后,節(jié)點(diǎn)1因故障而離線,此時,節(jié)點(diǎn)1變?yōu)殡x線節(jié)點(diǎn)。系統(tǒng)可以實(shí)時檢測是否接收到該離線節(jié)點(diǎn)的啟動請求,也就是,系統(tǒng)可以實(shí)時檢測該離線節(jié)點(diǎn)是否意圖再次啟動。
在步驟402中,在接收到該離線節(jié)點(diǎn)的啟動請求的情況下,根據(jù)該離線節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息,生成第二啟動標(biāo)識。
仍以上述示例為例,假設(shè)節(jié)點(diǎn)1在離線后又重新發(fā)出啟動請求,系統(tǒng)在接收到這一啟動請求后,可以根據(jù)該啟動請求對應(yīng)的啟動信息,生成第二啟動標(biāo)識。
在步驟403中,利用該第二啟動標(biāo)識替換該標(biāo)記信息中的第一啟動標(biāo)識,得到更新后的標(biāo)記信息。
在步驟404中,利用更新后的標(biāo)記信息對該離線節(jié)點(diǎn)重新進(jìn)行標(biāo)記。
在步驟405中,響應(yīng)于啟動請求,啟動所述離線節(jié)點(diǎn)。
綜上所述,利用上述技術(shù)方案,在節(jié)點(diǎn)每次啟動時,系統(tǒng)都會為該節(jié)點(diǎn)生成一與本次啟動相對應(yīng)的啟動標(biāo)識,并基于該啟動標(biāo)識和該節(jié)點(diǎn)的固有標(biāo)識來生成標(biāo)記信息,并利用該標(biāo)記信息對該節(jié)點(diǎn)進(jìn)行標(biāo)記。由于同一節(jié)點(diǎn)在每次啟動時生成的啟動標(biāo)識不一樣,因此,該節(jié)點(diǎn)的標(biāo)記信息的生命周期與該節(jié)點(diǎn)一次啟動到停止的時長相同,并且僅在本次生命周期內(nèi)有效。這樣,當(dāng)節(jié)點(diǎn)離線,系統(tǒng)對該節(jié)點(diǎn)執(zhí)行故障恢復(fù)時,由于節(jié)點(diǎn)每次啟動時標(biāo)記信息都不同,因此,故障恢復(fù)只會對上一次的現(xiàn)場進(jìn)行清理,不會影響本次節(jié)點(diǎn)的啟動及該節(jié)點(diǎn)執(zhí)行新任務(wù)。換言之,節(jié)點(diǎn)啟動時無需考慮集群是否正在對自己之前現(xiàn)場進(jìn)行處理,也無需等待故障恢復(fù)結(jié)束,節(jié)點(diǎn)可以正常啟動,并在啟動后可立即接受任務(wù)。這樣,不僅可以提高節(jié)點(diǎn)的恢復(fù)速度,并且還可以提升系統(tǒng)的處理效率。另外,通過為節(jié)點(diǎn)在不同生命周期動態(tài)配置不同的標(biāo)記信息,不僅能夠解決現(xiàn)有技術(shù)方案中的問題,并且相比于現(xiàn)有技術(shù)方案中要設(shè)置判斷邏輯的做法,本公開提供的上述方案使得系統(tǒng)總體的設(shè)計(jì)難度大大降低,操作簡單且設(shè)計(jì)巧妙,具有廣泛的適用性。
圖5是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)標(biāo)記裝置500的框圖。如圖5所示,該裝置500可以包括:第一啟動標(biāo)識生成模塊501,用于在節(jié)點(diǎn)啟動時,生成第一啟動標(biāo)識,其中,所述第一啟動標(biāo)識用于表示所述節(jié)點(diǎn)本次啟動時的啟動信息;標(biāo)記信息生成模塊502,用于根據(jù)所述第一啟動標(biāo)識和所述節(jié)點(diǎn)的固有標(biāo)識,生成標(biāo)記信息,其中,所述標(biāo)記信息包括所述第一啟動標(biāo)識和所述固有標(biāo)識;以及第一標(biāo)記模塊503,用于利用所述標(biāo)記信息對所述節(jié)點(diǎn)進(jìn)行標(biāo)記。
可選地,所述裝置500還可以包括:離線檢測模塊,用于檢測所述節(jié)點(diǎn)是否離線;第一啟動檢測模塊,用于當(dāng)檢測到所述節(jié)點(diǎn)離線時,檢測所述節(jié)點(diǎn)是否被重新啟動;第二啟動標(biāo)識生成模塊,用于當(dāng)檢測到所述節(jié)點(diǎn)被重新啟動時,生成第二啟動標(biāo)識,其中,所述第二啟動標(biāo)識用于表示所述節(jié)點(diǎn)被重新啟動時的啟動信息;第一標(biāo)記信息更新模塊,用于利用所述第二啟動標(biāo)識替換所述節(jié)點(diǎn)的所述標(biāo)記信息中的所述第一啟動標(biāo)識,得到更新后的標(biāo)記信息;所述第一標(biāo)記模塊還用于利用所述更新后的標(biāo)記信息重新對所述節(jié)點(diǎn)進(jìn)行標(biāo)記。
圖6是根據(jù)一示例性實(shí)施例提供的一種用于分布式集群系統(tǒng)的節(jié)點(diǎn)啟動裝置600的框圖。如圖6所示,該裝置600可以包括:第二啟動檢測模塊601,用于檢測是否接收到離線節(jié)點(diǎn)的啟動請求,其中,所述離線節(jié)點(diǎn)標(biāo)記有標(biāo)記信息,所述標(biāo)記信息包括所述離線節(jié)點(diǎn)的固有標(biāo)識和第一啟動標(biāo)識,所述第一啟動標(biāo)識用于表示所述離線節(jié)點(diǎn)在離線前的最后一次啟動請求對應(yīng)的啟動信息;第三啟動標(biāo)識生成模塊602,用于在接收到所述離線節(jié)點(diǎn)的啟動請求的情況下,根據(jù)所述離線節(jié)點(diǎn)的本次啟動請求對應(yīng)的啟動信息,生成第二啟動標(biāo)識;第二標(biāo)記信息更新模塊603,用于利用所述第二啟動標(biāo)識替換所述標(biāo)記信息中的所述第一啟動標(biāo)識,得到更新后的標(biāo)記信息;第二標(biāo)記模塊604,用于利用所述更新后的標(biāo)記信息對所述離線節(jié)點(diǎn)重新進(jìn)行標(biāo)記;以及,啟動模塊605,用于響應(yīng)于所述啟動請求,啟動所述離線節(jié)點(diǎn)。
關(guān)于上述實(shí)施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
以上結(jié)合附圖詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對本發(fā)明的技術(shù)方案進(jìn)行多種簡單變型,這些簡單變型均屬于本發(fā)明的保護(hù)范圍。
另外需要說明的是,在上述具體實(shí)施方式中所描述的各個具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合。為了避免不必要的重復(fù),本發(fā)明對各種可能的組合方式不再另行說明。
此外,本發(fā)明的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本發(fā)明的思想,其同樣應(yīng)當(dāng)視為本發(fā)明所公開的內(nèi)容。