一種分布式系統(tǒng)中心節(jié)點(diǎn)構(gòu)建、提交、監(jiān)控方法及裝置的制造方法
【專利說明】一種分布式系統(tǒng)中心節(jié)點(diǎn)構(gòu)建、提交、監(jiān)控方法及裝置
[0001]本申請是申請日為2012年9月28日、申請?zhí)枮?01210371063.9、發(fā)明名稱為“一種分布式系統(tǒng)中心節(jié)點(diǎn)構(gòu)建、提交、監(jiān)控方法及裝置”的中國專利申請的分案申請。
技術(shù)領(lǐng)域
[0002]本申請涉及分布式系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種分布式系統(tǒng)中心節(jié)點(diǎn)構(gòu)建方法、基于分布式系統(tǒng)中心節(jié)點(diǎn)的數(shù)據(jù)提交方法和監(jiān)控方法,及其各自對應(yīng)的裝置。
【背景技術(shù)】
[0003]分布式系統(tǒng)(Distributed Systems)是支持分布式處理的軟件系統(tǒng),其主要應(yīng)用是在由通信網(wǎng)絡(luò)互連的多處理機(jī)體系結(jié)構(gòu)上執(zhí)行任務(wù)。分布式系統(tǒng)根據(jù)具有使用場景的不同,通常包括分布式操作系統(tǒng)、分布式程序設(shè)計(jì)語言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)等類別。分布式系統(tǒng)與集中式系統(tǒng)相比,其穩(wěn)定性較高,具有數(shù)據(jù)自動恢復(fù)能力和良好的抗單點(diǎn)崩潰的能力。但是,分布式系統(tǒng)的這些能力很大程度上取決于其中心節(jié)點(diǎn)的性能,尤其在網(wǎng)絡(luò)和硬件環(huán)境不穩(wěn)定的情況下,中心節(jié)點(diǎn)關(guān)乎整個(gè)分布式系統(tǒng)的正常運(yùn)行。沒有中心節(jié)點(diǎn)或中心節(jié)點(diǎn)的能力較弱,均不能滿足現(xiàn)實(shí)中對分布式系統(tǒng)的要求。
【發(fā)明內(nèi)容】
[0004]為解決上述技術(shù)問題,本申請實(shí)施例提供一種構(gòu)建分布式中心節(jié)點(diǎn)的方法、基于該分布式系統(tǒng)中心節(jié)點(diǎn)的監(jiān)控方法及其對應(yīng)裝置,以增強(qiáng)分布式系統(tǒng)中心節(jié)點(diǎn)的穩(wěn)定性,進(jìn)而提高整個(gè)分布式系統(tǒng)的性能。
[0005]本申請實(shí)施例提供的分布式系統(tǒng)中心節(jié)點(diǎn)的構(gòu)建方法包括:
[0006]節(jié)點(diǎn)向分布式系統(tǒng)發(fā)送選舉消息,所述選舉消息包含選舉輪次和消息請求號;
[0007]判斷接收到選舉消息的節(jié)點(diǎn)的選舉輪次與選舉消息中的選舉輪次之間的大小關(guān)系,如果選舉消息的選舉輪次大,則使用選舉消息的選舉輪次更新接收到選舉消息的節(jié)點(diǎn)的選舉輪次;如果接收到選舉消息的節(jié)點(diǎn)的選舉輪次與選舉消息的選舉輪次相等,則判斷接收到選舉消息的節(jié)點(diǎn)的消息請求號與選舉消息中的消息請求號之間的大小關(guān)系,如果選舉消息的消息請求號大,則使用選舉消息的消息請求號更新接收到選舉消息的節(jié)點(diǎn)的消息請求號;根據(jù)更新后的選舉輪次和消息請求號形成對中心節(jié)點(diǎn)的推薦消息,并向分布式系統(tǒng)發(fā)送推薦消息;
[0008]節(jié)點(diǎn)統(tǒng)計(jì)推薦消息中對中心節(jié)點(diǎn)的推薦,并將被推薦數(shù)達(dá)到預(yù)設(shè)閾值的節(jié)點(diǎn)確定為中心節(jié)點(diǎn)。
[0009]優(yōu)選地,所述節(jié)點(diǎn)統(tǒng)計(jì)推薦消息中對中心節(jié)點(diǎn)的推薦,并將被推薦數(shù)達(dá)到預(yù)設(shè)閾值的節(jié)點(diǎn)確定為中心節(jié)點(diǎn)包括:
[0010]將發(fā)送推薦消息的節(jié)點(diǎn)的地址和發(fā)送推薦消息的節(jié)點(diǎn)推薦的中心節(jié)點(diǎn)的地址放入統(tǒng)計(jì)表,統(tǒng)計(jì)各被推薦作為中心節(jié)點(diǎn)的節(jié)點(diǎn)的被推薦數(shù),將被推薦數(shù)達(dá)到預(yù)設(shè)閾值的節(jié)點(diǎn)確定中心節(jié)點(diǎn)。
[0011]優(yōu)選地,選舉消息通過節(jié)點(diǎn)的選舉線程發(fā)送;接收選舉消息的節(jié)點(diǎn)通過接收線程接收選舉消息,發(fā)送推薦消息的節(jié)點(diǎn)通過發(fā)送線程發(fā)送推薦消息。
[0012]本申請實(shí)施例還提供了一種基于分布式系統(tǒng)中心節(jié)點(diǎn)的數(shù)據(jù)請求提交方法。該方法包括:
[0013]將非中心節(jié)點(diǎn)接收到的數(shù)據(jù)請求消息轉(zhuǎn)發(fā)給中心節(jié)點(diǎn),按照前述構(gòu)建中心節(jié)點(diǎn)的方法構(gòu)建得到;
[0014]將中心節(jié)點(diǎn)接收到的數(shù)據(jù)請求消息發(fā)送給分布式系統(tǒng)中的非中心節(jié)點(diǎn);
[0015]比較非中心節(jié)點(diǎn)接收到的數(shù)據(jù)請求消息的ID號與非中心節(jié)點(diǎn)自身的ID號之間的大小,如果數(shù)據(jù)請求消息的ID號大,則向中心節(jié)點(diǎn)返回確認(rèn)消息;
[0016]如果中心節(jié)點(diǎn)接收到的確認(rèn)消息達(dá)到預(yù)設(shè)閾值,則將數(shù)據(jù)請求消息的數(shù)據(jù)同步到分布式系統(tǒng)的所有非中心節(jié)點(diǎn)。
[0017]本申請實(shí)施例還提供了一種基于分布式系統(tǒng)中心節(jié)點(diǎn)的監(jiān)控方法。該方法包括:
[0018]在分布式系統(tǒng)中注冊監(jiān)控節(jié)點(diǎn),所述監(jiān)控節(jié)點(diǎn)包含配置目錄和狀態(tài)目錄;
[0019]在分布式系統(tǒng)中心節(jié)點(diǎn)接收到分布式系統(tǒng)中的節(jié)點(diǎn)發(fā)生變化的消息后,比較監(jiān)控節(jié)點(diǎn)的配置目錄和狀態(tài)目錄下的節(jié)點(diǎn),如果節(jié)點(diǎn)存在于配置目錄且不存在于狀態(tài)目錄,則發(fā)送監(jiān)控報(bào)警,按照前述構(gòu)建中心節(jié)點(diǎn)的方法構(gòu)建得到。
[0020]優(yōu)選地,所述方法還包括:
[0021]在分布式系統(tǒng)中注冊上報(bào)數(shù)據(jù)目錄,以便節(jié)點(diǎn)發(fā)生變化后在該上報(bào)數(shù)據(jù)目錄下建立新的報(bào)警節(jié)點(diǎn);
[0022]在分布式系統(tǒng)中心節(jié)點(diǎn)接收到分布式系統(tǒng)中的節(jié)點(diǎn)發(fā)生變化的消息后,獲取上報(bào)數(shù)據(jù)目錄下的節(jié)點(diǎn),根據(jù)獲取的上報(bào)目錄下的節(jié)點(diǎn)發(fā)送監(jiān)控報(bào)警。
[0023]優(yōu)選地,所述方法還包括:
[0024]在分布式系統(tǒng)中注冊分布式鎖節(jié)點(diǎn)目錄;
[0025]獲取分布式鎖節(jié)點(diǎn)目錄下的節(jié)點(diǎn);
[0026]判斷分布式節(jié)點(diǎn)目錄下的節(jié)點(diǎn)中節(jié)點(diǎn)號最小的節(jié)點(diǎn),向節(jié)點(diǎn)號最小的節(jié)點(diǎn)分配分布式鎖。
[0027]本申請實(shí)施例提供了一種分布式系統(tǒng)中心節(jié)點(diǎn)的構(gòu)建裝置。該裝置包括:發(fā)送單元、第一判斷單元、第二判斷單元、更新單元、形成單元、統(tǒng)計(jì)單元和設(shè)置單元,其中:
[0028]所述發(fā)送單元,用于向分布式系統(tǒng)發(fā)送選舉消息,所述選舉消息包含選舉輪次和消息請求號;
[0029]所述第一判斷單元,用于判斷接收到選舉消息的節(jié)點(diǎn)的選舉輪次與選舉消息中的選舉輪次之間的大小關(guān)系,如果選舉消息的選舉輪次大,則觸發(fā)更新單元,如果接收到選舉消息的節(jié)點(diǎn)的選舉輪次與選舉消息的選舉輪次相等,則觸發(fā)第二判斷單元;
[0030]所述第二判斷單元,用于判斷接收到選舉消息的節(jié)點(diǎn)的消息請求號與選舉消息中的消息請求號之間的大小關(guān)系,如果選舉消息的消息請求號大,則觸發(fā)更新單元;
[0031]所述更新單元,用于在選舉消息的選舉輪次大時(shí),使用選舉消息的選舉輪次更新接收到選舉消息的節(jié)點(diǎn)的選舉輪次,在選舉消息的消息請求號大時(shí),使用選舉消息的消息請求號更新接收到選舉消息的節(jié)點(diǎn)的消息請求號;
[0032]所述形成單元,用于根據(jù)更新后的選舉輪次和消息請求號形成對中心節(jié)點(diǎn)的推薦消息,并向分布式系統(tǒng)發(fā)送推薦消息;
[0033]所述推薦單元,用于統(tǒng)計(jì)推薦消息中對中心節(jié)點(diǎn)的推薦;
[0034]所述確定單元,用于將被推薦數(shù)達(dá)到預(yù)設(shè)閾值的節(jié)點(diǎn)確定為中心節(jié)點(diǎn)。
[0035]本申請實(shí)施例還提供了一種基于分布式系統(tǒng)中心節(jié)點(diǎn)的數(shù)據(jù)請求提交裝置。該裝置包括:轉(zhuǎn)發(fā)單元、群發(fā)單元、第一比較單元、返回單元和同步單元,其中:
[0036]所述轉(zhuǎn)發(fā)單元,用于將非中心節(jié)點(diǎn)接收到數(shù)據(jù)請求消息轉(zhuǎn)發(fā)給中心節(jié)點(diǎn),所述中心節(jié)點(diǎn)按照前述構(gòu)建中心節(jié)點(diǎn)的方法構(gòu)建得到;
[0037]所述群發(fā)單元,用于將中心節(jié)點(diǎn)接收到的數(shù)據(jù)請求消息發(fā)送給分布式系統(tǒng)中的非中心節(jié)點(diǎn);
[0038]所述第一比較單元,用于比較非中心節(jié)點(diǎn)接收到的數(shù)據(jù)請求消息的ID號與非中心節(jié)點(diǎn)自身的ID號之間的大小,如果數(shù)據(jù)請求消息的ID號大,則觸發(fā)返回單元;
[0039]所述返回單元,用于向中心節(jié)點(diǎn)返回確認(rèn)消息;
[0040]所述同步單元,用于在中心節(jié)點(diǎn)接收到的確認(rèn)消息達(dá)到預(yù)設(shè)閾值時(shí),將數(shù)據(jù)請求消息的數(shù)據(jù)同步到分布式系統(tǒng)的所有非中心節(jié)點(diǎn)。
[0041]本申請實(shí)施例還提供了一種基于分布式系統(tǒng)中心節(jié)點(diǎn)的監(jiān)控裝置。該裝置包括:注冊單元、第二比較單元和監(jiān)控報(bào)警單元,其中:
[0042]所述注冊單元,用于在分布式系統(tǒng)中注冊監(jiān)控節(jié)點(diǎn),所述監(jiān)控節(jié)點(diǎn)包含配置目錄和狀態(tài)目錄;
[0043]所述第二比較單元,用于在分布式系統(tǒng)中心節(jié)點(diǎn)接收到分布式系統(tǒng)中的節(jié)點(diǎn)發(fā)生變化的消息后比較監(jiān)控節(jié)點(diǎn)的配置目錄和狀態(tài)目錄下的節(jié)點(diǎn),如果節(jié)點(diǎn)存在于配置目錄且不存在于狀態(tài)目錄,則觸發(fā)監(jiān)控報(bào)警單元,所述中心節(jié)點(diǎn)按照前述構(gòu)建中心節(jié)點(diǎn)的方法構(gòu)建得到;
[0044]所述監(jiān)控報(bào)警單元,用于發(fā)送監(jiān)控報(bào)警。
[0045]本申請實(shí)施例將發(fā)送選舉消息的節(jié)點(diǎn)與接收選舉消息的節(jié)點(diǎn)的選舉輪次和消息請求號大小進(jìn)行比較,根據(jù)比較后的結(jié)果更新節(jié)點(diǎn)的選舉輪次和消息請求號,更新后生成推薦消息,接收推薦消息的其他節(jié)點(diǎn)根據(jù)該推薦消息對被推薦作為中心節(jié)點(diǎn)的節(jié)點(diǎn)進(jìn)行統(tǒng)計(jì),并依據(jù)統(tǒng)計(jì)結(jié)果設(shè)置中心節(jié)點(diǎn)。與現(xiàn)有技術(shù)相比