個(gè)主節(jié)點(diǎn)和至少一個(gè)備用節(jié)點(diǎn)。所述的用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理方法,包括以下步驟:
[0033]步驟201,向各個(gè)元數(shù)據(jù)節(jié)點(diǎn)依次發(fā)出服務(wù)請(qǐng)求。
[0034]在本實(shí)施例中,用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的代理服務(wù)器或緩存服務(wù)器)可以通過有線連接方式或者無線連接方式向各個(gè)元數(shù)據(jù)節(jié)點(diǎn)依次發(fā)出服務(wù)請(qǐng)求。該服務(wù)請(qǐng)求可以是提供元數(shù)據(jù)管理服務(wù)的請(qǐng)求。其中服務(wù)請(qǐng)求可以是元數(shù)據(jù)查詢定位請(qǐng)求、元數(shù)據(jù)更新操作請(qǐng)求或其他元數(shù)據(jù)服務(wù)請(qǐng)求。
[0035]步驟202,接收元數(shù)據(jù)節(jié)點(diǎn)根據(jù)服務(wù)請(qǐng)求返回的反饋信息。
[0036]在本實(shí)施例中,基于步驟201中發(fā)出的服務(wù)請(qǐng)求,電子設(shè)備可以接收到元數(shù)據(jù)節(jié)點(diǎn)根據(jù)服務(wù)請(qǐng)求返回的反饋信息。反饋信息可以是元數(shù)據(jù)管理節(jié)點(diǎn)在接收到電子設(shè)備發(fā)送的服務(wù)請(qǐng)求后對(duì)服務(wù)請(qǐng)求進(jìn)行處理而生成的信息。每個(gè)元數(shù)據(jù)節(jié)點(diǎn)中可通過設(shè)置標(biāo)識(shí)的方式區(qū)分該元數(shù)據(jù)節(jié)點(diǎn)屬于主節(jié)點(diǎn)或是備用節(jié)點(diǎn)。相應(yīng)的,元數(shù)據(jù)管理節(jié)點(diǎn),在接收到服務(wù)請(qǐng)求后,可以通過查找標(biāo)識(shí)確定自己屬于主節(jié)點(diǎn)或是備用節(jié)點(diǎn)。本領(lǐng)域技術(shù)人員可以想到,元數(shù)據(jù)節(jié)點(diǎn)還可以通過其他方法確定自己的角色屬于主節(jié)點(diǎn)或是備用節(jié)點(diǎn)中的哪一種。當(dāng)元數(shù)據(jù)管理節(jié)點(diǎn)確定自己為主節(jié)點(diǎn)時(shí),對(duì)應(yīng)的反饋信息可以是服務(wù)接受信息;當(dāng)元數(shù)據(jù)管理節(jié)點(diǎn)確定自己為備用節(jié)點(diǎn)時(shí),對(duì)應(yīng)的反饋信息可以是服務(wù)拒絕信息。
[0037]步驟203,將返回服務(wù)接受信息的元數(shù)據(jù)節(jié)點(diǎn)確認(rèn)為執(zhí)行元數(shù)據(jù)管理功能的主節(jié)點(diǎn)。
[0038]本實(shí)施例中,基于步驟202接收到的反饋信息,電子設(shè)備可以對(duì)該反饋信息進(jìn)行判斷。當(dāng)該反饋信息為服務(wù)接受信息時(shí),電子設(shè)備可以將反饋服務(wù)接受信息的元數(shù)據(jù)節(jié)點(diǎn)確定為執(zhí)行元數(shù)據(jù)管理功能的主節(jié)點(diǎn)。
[0039]在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述將返回所述服務(wù)接受信息的元數(shù)據(jù)節(jié)點(diǎn)確認(rèn)為執(zhí)行元數(shù)據(jù)管理功能的主節(jié)點(diǎn),包括:若元數(shù)據(jù)節(jié)點(diǎn)返回的反饋信息是服務(wù)接收信息,則確定所述元數(shù)據(jù)節(jié)點(diǎn)為執(zhí)行元數(shù)據(jù)管理功能的主節(jié)點(diǎn),并停止發(fā)送服務(wù)請(qǐng)求。在本實(shí)現(xiàn)方式中,若反饋信息為服務(wù)接收信息,電子設(shè)備可以對(duì)將返回該服務(wù)接收信息的元數(shù)據(jù)節(jié)點(diǎn)判斷為主節(jié)點(diǎn)并可以使用其提供的元數(shù)據(jù)管理服務(wù),同時(shí),電子設(shè)備可以停止向其他元數(shù)據(jù)節(jié)點(diǎn)發(fā)送服務(wù)請(qǐng)求??蛇x的,若反饋信息為服務(wù)拒絕信息,電子設(shè)備可以對(duì)下一個(gè)元數(shù)據(jù)節(jié)點(diǎn)發(fā)出服務(wù)請(qǐng)求。
[0040]本申請(qǐng)的上述實(shí)施例提供的方法在多個(gè)機(jī)房中部署多個(gè)元數(shù)據(jù)節(jié)點(diǎn),可預(yù)防元數(shù)據(jù)節(jié)點(diǎn)所處的機(jī)房故障造成分布式緩存系統(tǒng)中沒有可用的元數(shù)據(jù)節(jié)點(diǎn);同時(shí),通過向各個(gè)元數(shù)據(jù)節(jié)點(diǎn)發(fā)送服務(wù)請(qǐng)求以及接收各個(gè)元數(shù)據(jù)節(jié)點(diǎn)的反饋信息多個(gè)元數(shù)據(jù)節(jié)點(diǎn)中確定主節(jié)點(diǎn),從而防止多個(gè)元數(shù)據(jù)節(jié)點(diǎn)的共存對(duì)分布式緩存系統(tǒng)造成的沖突,從而提高了分布式緩存系統(tǒng)的可用性。
[0041]進(jìn)一步參考圖3,其示出了用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理方法的又一個(gè)實(shí)施例的流程300。該用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理方法的流程300,包括以下步驟:
[0042]步驟301,向各個(gè)元數(shù)據(jù)節(jié)點(diǎn)依次發(fā)出服務(wù)請(qǐng)求。
[0043]在本實(shí)施例中,步驟301與圖2對(duì)應(yīng)實(shí)施例的步驟201基本相同,這里不再贅述。
[0044]步驟302,接收元數(shù)據(jù)節(jié)點(diǎn)根據(jù)服務(wù)請(qǐng)求返回的反饋信息。
[0045]在本實(shí)施例中,步驟302與圖2對(duì)應(yīng)實(shí)施例的步驟202基本相同,這里不再贅述。
[0046]步驟303,將返回所述服務(wù)接受信息的元數(shù)據(jù)節(jié)點(diǎn)確認(rèn)為執(zhí)行元數(shù)據(jù)管理功能的主節(jié)點(diǎn)。
[0047]在本實(shí)施例中,步驟303與圖2對(duì)應(yīng)實(shí)施例的步驟203基本相同,這里不再贅述。
[0048]步驟304,檢測(cè)所確定的主節(jié)點(diǎn)是否處于故障狀態(tài)。
[0049]在本實(shí)施例中,電子設(shè)備可以進(jìn)一步對(duì)步驟303確定的主節(jié)點(diǎn)進(jìn)行狀態(tài)監(jiān)測(cè)。通常,元數(shù)據(jù)節(jié)點(diǎn)在對(duì)分布式緩存系統(tǒng)提供元數(shù)據(jù)服務(wù)時(shí),元數(shù)據(jù)節(jié)點(diǎn)可以向接收元數(shù)據(jù)管理服務(wù)的電子設(shè)備發(fā)送狀態(tài)信息。元數(shù)據(jù)節(jié)點(diǎn)處于故障狀態(tài)或非故障狀態(tài)時(shí),該狀態(tài)信息存在差別,電子設(shè)備可以通過狀態(tài)信息的差別確定作為主節(jié)點(diǎn)的元數(shù)據(jù)節(jié)點(diǎn)是否處于故障狀態(tài)。當(dāng)元數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)故障時(shí),元數(shù)據(jù)節(jié)點(diǎn)還可以通過其他方式向電子設(shè)備發(fā)送異常信號(hào),因此電子設(shè)備可以通過對(duì)異常信號(hào)的檢測(cè)判斷是否主節(jié)點(diǎn)處于故障。
[0050]步驟305,若所述主節(jié)點(diǎn)處于故障狀態(tài),則從與所述主節(jié)點(diǎn)位于不同機(jī)房的備用節(jié)點(diǎn)中選擇一個(gè)備用節(jié)點(diǎn)作為新的主節(jié)點(diǎn)。
[0051 ]在本實(shí)施例中,當(dāng)電子設(shè)備通過步驟304檢測(cè)到主節(jié)點(diǎn)處于故障狀態(tài)時(shí),電子設(shè)備可以從主節(jié)點(diǎn)處于不同機(jī)房的至少一個(gè)備用節(jié)點(diǎn)中選擇一個(gè)備用節(jié)點(diǎn),并可以將選擇將備用節(jié)點(diǎn)作為新的主節(jié)點(diǎn)。選擇備用節(jié)點(diǎn)的方式可以是隨機(jī)選取,也可以根據(jù)預(yù)設(shè)的規(guī)則進(jìn)行選取。
[0052]從圖3中可以看出,與圖2對(duì)應(yīng)的實(shí)施例相比,本實(shí)施例中的用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理方法的流程300在確定了主節(jié)點(diǎn)后,繼續(xù)對(duì)主節(jié)點(diǎn)是否故障狀態(tài)進(jìn)行檢測(cè),并在主節(jié)點(diǎn)故障時(shí)及時(shí)從與故障主節(jié)點(diǎn)處于不同機(jī)房的備用節(jié)點(diǎn)中選擇一個(gè)元數(shù)據(jù)節(jié)點(diǎn)作為新的主節(jié)點(diǎn),從而可以在當(dāng)前主節(jié)點(diǎn)處于故障時(shí)能夠及時(shí)選取出新的主節(jié)點(diǎn)進(jìn)行元數(shù)據(jù)管理服務(wù),進(jìn)一步提高了分布式緩存系統(tǒng)的可用性。
[0053]在本實(shí)施例的一些可選實(shí)現(xiàn)方式中,分布式緩存系統(tǒng)還包括至少一個(gè)用于選擇新的主節(jié)點(diǎn)的故障處理節(jié)點(diǎn),故障處理節(jié)點(diǎn)可以在主節(jié)點(diǎn)處于故障時(shí)進(jìn)行相應(yīng)處理。同時(shí)步驟303可以如下進(jìn)行:
[0054]首先,電子設(shè)備可以向至少一個(gè)故障處理節(jié)點(diǎn)發(fā)送主節(jié)點(diǎn)選舉信號(hào)。其中,電子設(shè)備發(fā)送選舉信號(hào)所至的故障處理節(jié)點(diǎn)可以是分布式緩存系統(tǒng)中所有故障處理節(jié)點(diǎn)的全部或是一部分。同時(shí),電子設(shè)備可以在主節(jié)點(diǎn)選舉信號(hào)中將與當(dāng)前處于故障狀態(tài)的主節(jié)點(diǎn)位于不同的備用節(jié)點(diǎn)作為被選舉節(jié)點(diǎn)。作為被選舉節(jié)點(diǎn)的元數(shù)據(jù)節(jié)點(diǎn)可以是分布式緩存系統(tǒng)中的全部或者一部分。
[0055]接著,電子設(shè)備可以接收各個(gè)故障處理節(jié)點(diǎn)返回的投票信息。其中,接收選舉信號(hào)的故障處理節(jié)點(diǎn)可以根據(jù)特定規(guī)則對(duì)各個(gè)被選舉節(jié)點(diǎn)進(jìn)行投票,并可以將相應(yīng)的投票信息返回給電子設(shè)備??蛇x的,故障處理節(jié)點(diǎn)中可部署故障處理模塊,故障處理節(jié)點(diǎn)可以通過故障處理模塊生成投票信息并將投票信息發(fā)送給上述電子設(shè)備。通過這種方式,電子設(shè)備即可以獲取故障處理節(jié)點(diǎn)的投票信息。可選的,該特定規(guī)則可以是故障處理節(jié)點(diǎn)基于節(jié)點(diǎn)之間的連接情況進(jìn)行投票的規(guī)則。
[0056]然后,電子設(shè)備可以基于上述返回的投票信息進(jìn)行仲裁。其中,電子設(shè)備可以通過公平仲裁算法或其他仲裁算法進(jìn)行仲裁,以獲得仲裁結(jié)果。
[0057]最后,電子設(shè)備可以根據(jù)上述仲裁結(jié)果選取對(duì)應(yīng)的備用節(jié)點(diǎn)。
[0058]可選的,上述分布式緩存系統(tǒng)中故障處理節(jié)點(diǎn)的數(shù)量可以為奇數(shù)。這樣,可以防止故障處理節(jié)點(diǎn)為偶數(shù)時(shí)而導(dǎo)致無法通過投票和仲裁獲得仲裁結(jié)果。可選的,分布式緩存系統(tǒng)中還可以設(shè)置一個(gè)仲裁節(jié)點(diǎn),該仲裁節(jié)點(diǎn)可以在當(dāng)前可用的故障處理節(jié)點(diǎn)為奇數(shù)時(shí),也參與備用節(jié)點(diǎn)的投票。通過這種方法,也能避免故障處理節(jié)點(diǎn)為偶數(shù)時(shí)導(dǎo)致無法獲得仲裁結(jié)果的風(fēng)險(xiǎn)。
[0059]本實(shí)施例中可以根據(jù)仲裁節(jié)點(diǎn)的投票信息進(jìn)行仲裁選出新的主節(jié)點(diǎn),由于各個(gè)仲裁節(jié)點(diǎn)可以根據(jù)特定規(guī)則對(duì)備用節(jié)點(diǎn)進(jìn)行選擇,可以使最終選出的新的主節(jié)點(diǎn)在對(duì)分布式緩存系統(tǒng)提供元數(shù)據(jù)管理功能時(shí)具有更高的效率,從而提高分布式緩存系統(tǒng)的整體性能。
[0060]進(jìn)一步參考圖4,作為對(duì)上述各圖所示方法的實(shí)現(xiàn),本申請(qǐng)?zhí)峁┝艘环N用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理裝置的一個(gè)實(shí)施例,該裝置實(shí)施例與圖2所示的方法實(shí)施例相對(duì)應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
[0061]該分布式緩存系統(tǒng)包括位于多個(gè)機(jī)房中的多個(gè)元數(shù)據(jù)節(jié)點(diǎn),該多個(gè)元數(shù)據(jù)節(jié)點(diǎn)包括主節(jié)點(diǎn)和至少一個(gè)備用節(jié)點(diǎn)。如圖4所示,本實(shí)施例所述的用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理裝置400包括:請(qǐng)求發(fā)送單元401、反饋信息接收單元402、確認(rèn)單元403。其中,接收單元401配置用于向各個(gè)元數(shù)據(jù)節(jié)點(diǎn)依次發(fā)出服務(wù)請(qǐng)求;反饋信息接收單元402配置用于接收元數(shù)據(jù)節(jié)點(diǎn)根據(jù)服務(wù)請(qǐng)求返回的反饋信息,所述反饋信息包括服務(wù)接受信息或者服務(wù)拒絕信息;確認(rèn)單元403配置用于將返回所述服務(wù)接受信息的元數(shù)據(jù)節(jié)點(diǎn)確認(rèn)為執(zhí)行元數(shù)據(jù)管理功能的主節(jié)點(diǎn)。
[0062]在本實(shí)施例中,用于分布式緩存系統(tǒng)的元數(shù)據(jù)節(jié)點(diǎn)管理裝置400的請(qǐng)求發(fā)送單元401可以通過有線連接方式或者無線連接方式向各個(gè)元數(shù)據(jù)節(jié)點(diǎn)依次發(fā)出服務(wù)請(qǐng)求。該服務(wù)請(qǐng)求可以是提供元數(shù)據(jù)管理服務(wù)的請(qǐng)求。
[0063]在本實(shí)施例中,基于請(qǐng)求發(fā)送單元401發(fā)送的服務(wù)請(qǐng)求,元數(shù)據(jù)管理節(jié)點(diǎn)在接收到服務(wù)請(qǐng)求后對(duì)服務(wù)請(qǐng)求進(jìn)行處理并返回反饋信息,上述反饋信息接收單元402即可以接收到元數(shù)據(jù)節(jié)點(diǎn)根據(jù)服務(wù)請(qǐng)求返回的反饋信息。
[0064]在本實(shí)施例中