服務(wù)器節(jié)點(diǎn)進(jìn)行資源同步的方法、裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種服務(wù)器節(jié)點(diǎn)進(jìn)行資源同步的方法、裝置。
【背景技術(shù)】
[0002]一個(gè)分布式服務(wù)器系統(tǒng)擁有多種通用的物理和邏輯資源,通過(guò)動(dòng)態(tài)的分配,把分散的物理和邏輯資源通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)以整體的形式提供給用戶,通常需要一臺(tái)或多臺(tái)專門(mén)的服務(wù)器節(jié)點(diǎn)來(lái)實(shí)現(xiàn)這一功能。
[0003]對(duì)于分布式服務(wù)器系統(tǒng),為了保證整個(gè)系統(tǒng)作為一個(gè)統(tǒng)一的整體對(duì)外提供服務(wù),在各個(gè)服務(wù)器節(jié)點(diǎn)之間進(jìn)行地址資源、數(shù)據(jù)資源等各種資源的同步是非常重要的。目前,還沒(méi)有一種在各個(gè)服務(wù)器節(jié)點(diǎn)之間自動(dòng)進(jìn)行資源同步的方法,當(dāng)系統(tǒng)中的服務(wù)器節(jié)點(diǎn)出現(xiàn)故障或者人為的增加和移除時(shí),都需要外部進(jìn)行額外的控制和管理,來(lái)實(shí)現(xiàn)各個(gè)服務(wù)器節(jié)點(diǎn)之間的資源同步。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供了一種服務(wù)器節(jié)點(diǎn)進(jìn)行資源同步的方法、裝置,以實(shí)現(xiàn)在各個(gè)服務(wù)器節(jié)點(diǎn)之間方便、自動(dòng)地進(jìn)行資源同步。
[0005]本發(fā)明提供了如下方案:
[0006]一種分布式服務(wù)器系統(tǒng)中服務(wù)器節(jié)點(diǎn)進(jìn)行資源同步的方法,包括:
[0007]在分布式服務(wù)器系統(tǒng)中的每個(gè)服務(wù)器節(jié)點(diǎn)中管理服務(wù)器IP地址列表,該服務(wù)器IP地址列表中記載了多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址,每個(gè)服務(wù)器節(jié)點(diǎn)和本地的服務(wù)器IP地址列表中記載的各個(gè)服務(wù)器節(jié)點(diǎn)之間建立網(wǎng)絡(luò)連接;
[0008]每個(gè)服務(wù)器節(jié)點(diǎn)向和其建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地資源信息的心跳數(shù)據(jù)包,通過(guò)所述心跳數(shù)據(jù)包中攜帶的資源信息在各個(gè)服務(wù)器節(jié)點(diǎn)之間進(jìn)行資源同止/J/ O
[0009]所述的在分布式服務(wù)器系統(tǒng)中的每個(gè)服務(wù)器節(jié)點(diǎn)中管理服務(wù)器IP地址列表,該服務(wù)器IP地址列表中記載了多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址,每個(gè)服務(wù)器節(jié)點(diǎn)和本地的服務(wù)器IP地址列表中記載的各個(gè)服務(wù)器節(jié)點(diǎn)之間建立網(wǎng)絡(luò)連接,包括:
[0010]在分布式服務(wù)器系統(tǒng)中的服務(wù)器節(jié)點(diǎn)中管理服務(wù)器IP地址列表,該服務(wù)器IP地址列表中記載了多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址;
[0011]根據(jù)所述服務(wù)器IP地址列表中記載的多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址生成IP列表特征值,該IP列表特征值對(duì)應(yīng)了所述服務(wù)器IP地址列表的版本值,所述服務(wù)器節(jié)點(diǎn)將所述IP列表特征值保存在本地;
[0012]在所述服務(wù)器節(jié)點(diǎn)中設(shè)置心跳監(jiān)聽(tīng)端口,該心跳監(jiān)聽(tīng)端口和所述服務(wù)器IP地址列表中記載的其它服務(wù)器節(jié)點(diǎn)的心跳監(jiān)聽(tīng)端口之間建立網(wǎng)絡(luò)連接。
[0013]所述的每個(gè)服務(wù)器節(jié)點(diǎn)向和其建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地資源信息的心跳數(shù)據(jù)包,通過(guò)所述心跳數(shù)據(jù)包中攜帶的資源信息在各個(gè)服務(wù)器節(jié)點(diǎn)之間進(jìn)行資源同步,包括:
[0014]所述服務(wù)器節(jié)點(diǎn)向和其建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地保存的IP列表特征值的心跳數(shù)據(jù)包;
[0015]當(dāng)所述服務(wù)器節(jié)點(diǎn)接收到其它服務(wù)器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接發(fā)送過(guò)來(lái)的心跳數(shù)據(jù)包后,提取該心跳數(shù)據(jù)包中攜帶的第一 IP列表特征值,將該心跳數(shù)據(jù)包中攜帶的第一 IP列表特征值和本地存儲(chǔ)的第二 IP列表特征值進(jìn)行比較,當(dāng)所述第一 IP列表特征值大于所述第二 IP列表特征值時(shí),則所述服務(wù)器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接向所述其它服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)器IP地址列表更新請(qǐng)求,接收到所述其它服務(wù)器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的服務(wù)器IP地址列表更新響應(yīng)后,用所述服務(wù)器IP地址列表更新響應(yīng)中攜帶的所述其它服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表替換本地原先存儲(chǔ)的服務(wù)器IP地址列表,并且用所述第一 IP列表特征值替換本地原先存儲(chǔ)的第二 IP列表特征值;
[0016]當(dāng)所述第一 IP列表特征值不大于所述第二 IP列表特征值時(shí),則所述服務(wù)器節(jié)點(diǎn)不向所述其它服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)器IP地址列表更新請(qǐng)求。
[0017]所述的方法還包括:
[0018]在分布式服務(wù)器系統(tǒng)中的服務(wù)器節(jié)點(diǎn)中管理數(shù)據(jù)資源列表,該資源地址列表用來(lái)標(biāo)記本地服務(wù)器節(jié)點(diǎn)所擁有的數(shù)據(jù)資源,根據(jù)所述數(shù)據(jù)資源列表生成資源狀態(tài)特征值,該資源狀態(tài)特征值對(duì)應(yīng)了所述數(shù)據(jù)資源列表的版本值,所述服務(wù)器節(jié)點(diǎn)將所述資源狀態(tài)特征值保存在本地;
[0019]所述服務(wù)器節(jié)點(diǎn)向和其建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地保存的資源狀態(tài)特征值和IP列表特征值的心跳數(shù)據(jù)包;
[0020]當(dāng)所述服務(wù)器節(jié)點(diǎn)接收到其它服務(wù)器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接發(fā)送過(guò)來(lái)的心跳數(shù)據(jù)包后,提取該心跳數(shù)據(jù)包中攜帶的第一資源狀態(tài)特征值,將該心跳數(shù)據(jù)包中攜帶的第一資源狀態(tài)特征值和本地存儲(chǔ)的第二資源狀態(tài)特征值進(jìn)行比較,當(dāng)所述第一資源狀態(tài)特征值大于所述第二資源狀態(tài)特征值時(shí),則所述服務(wù)器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接向所述其它服務(wù)器節(jié)點(diǎn)發(fā)送資源狀態(tài)更新請(qǐng)求,接收到所述其它服務(wù)器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的資源狀態(tài)更新響應(yīng)后,用所述資源狀態(tài)更新響應(yīng)中攜帶的所述其它服務(wù)器節(jié)點(diǎn)的數(shù)據(jù)資源列表替換本地原先存儲(chǔ)的數(shù)據(jù)資源列表,并且用所述第一資源狀態(tài)特征值替換本地原先存儲(chǔ)的第二資源狀態(tài)特征值;
[0021]當(dāng)所述第一資源狀態(tài)特征值不大于所述第二資源狀態(tài)特征值時(shí),則所述服務(wù)器節(jié)點(diǎn)不向所述其它服務(wù)器節(jié)點(diǎn)發(fā)送資源狀態(tài)更新請(qǐng)求。
[0022]所述的方法還包括:
[0023]在所述分布式服務(wù)器系統(tǒng)中增加一個(gè)新服務(wù)器節(jié)點(diǎn),給該新服務(wù)器節(jié)點(diǎn)設(shè)置IP地址,設(shè)置該新服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表和數(shù)據(jù)資源列表為空,IP列表特征值和資源狀態(tài)特征值為最低值,在所述分布式服務(wù)器系統(tǒng)中選取一個(gè)現(xiàn)有的服務(wù)器節(jié)點(diǎn),在該現(xiàn)有的服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表中增加所述新服務(wù)器節(jié)點(diǎn)的IP地址,并更新所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)的IP列表特征值;
[0024]在所述新服務(wù)器節(jié)點(diǎn)和所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)之間建立網(wǎng)絡(luò)連接,所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)向所述新服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地存儲(chǔ)的IP列表特征值和資源狀態(tài)特征值心跳數(shù)據(jù)包,所述新服務(wù)器節(jié)點(diǎn)接收到所述心跳數(shù)據(jù)包后,根據(jù)所述心跳數(shù)據(jù)包中攜帶的IP列表特征值和資源狀態(tài)特征值,向所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)器IP地址列表更新請(qǐng)求和資源狀態(tài)更新請(qǐng)求;
[0025]所述新服務(wù)器節(jié)點(diǎn)接收到所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的服務(wù)器IP地址列表更新響應(yīng)后,用所述服務(wù)器IP地址列表更新響應(yīng)中攜帶的所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表替換本地原先存儲(chǔ)的服務(wù)器IP地址列表,并且用所述心跳數(shù)據(jù)包中攜帶IP地址列表特征值替換本地原先存儲(chǔ)的IP地址列表特征值;接收到所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的資源狀態(tài)更新響應(yīng)后,用所述資源狀態(tài)更新響應(yīng)中攜帶的所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)的數(shù)據(jù)資源列表替換本地原先存儲(chǔ)的數(shù)據(jù)資源列表,并且用所述心跳數(shù)據(jù)包中攜帶資源狀態(tài)特征值替換本地原先存儲(chǔ)的第二資源狀態(tài)特征值。
[0026]所述的方法還包括:
[0027]在所述分布式服務(wù)器系統(tǒng)中移除一個(gè)舊服務(wù)器節(jié)點(diǎn)時(shí),斷開(kāi)所述舊服務(wù)器節(jié)點(diǎn)和其它服務(wù)器節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接,在所述分布式服務(wù)器系統(tǒng)中選取一個(gè)現(xiàn)有的服務(wù)器節(jié)點(diǎn),在該現(xiàn)有的服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表中刪除所述舊服務(wù)器節(jié)點(diǎn)的IP地址,并更新所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)的IP列表特征值;
[0028]所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)向其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地存儲(chǔ)的IP列表特征值的心跳數(shù)據(jù)包,所述其它服務(wù)器節(jié)點(diǎn)接收到所述心跳數(shù)據(jù)包后,根據(jù)所述心跳數(shù)據(jù)包中攜帶的IP列表特征值,向所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)器IP地址列表更新請(qǐng)求;
[0029]所述其它服務(wù)器節(jié)點(diǎn)接收到所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的服務(wù)器IP地址列表更新響應(yīng)后,用所述服務(wù)器IP地址列表更新響應(yīng)中攜帶的所述現(xiàn)有的服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表替換本地原先存儲(chǔ)的服務(wù)器IP地址列表,并且用所述心跳數(shù)據(jù)包中攜帶IP地址列表特征值替換本地原先存儲(chǔ)的IP地址列表特征值。
[0030]一種分布式服務(wù)器系統(tǒng)中的服務(wù)器節(jié)點(diǎn),包括:
[0031]資源管理模塊,用于管理服務(wù)器IP地址列表,該服務(wù)器IP地址列表中記載了多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址;
[0032]網(wǎng)絡(luò)連接建立模塊,用于和所述資源管理模塊所管理的服務(wù)器IP地址列表中記載的各個(gè)服務(wù)器節(jié)點(diǎn)之間建立網(wǎng)絡(luò)連接;
[0033]資源同步處理模塊,用于向和本服務(wù)器節(jié)點(diǎn)建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地資源信息的心跳數(shù)據(jù)包,通過(guò)所述心跳數(shù)據(jù)包中攜帶的資源信息在各個(gè)服務(wù)器節(jié)點(diǎn)之間進(jìn)行資源同步。
[0034]所述的資源管理模塊,具體用于管理服務(wù)器IP地址列表,該服務(wù)器IP地址列表中記載了多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址,根據(jù)所述服務(wù)器IP地址列表中記載的多個(gè)服務(wù)器節(jié)點(diǎn)的IP地址生成IP列表特征值,該IP列表特征值對(duì)應(yīng)了所述服務(wù)器IP地址列表的版本值,將所述IP列表特征值進(jìn)行保存;
[0035]所述的網(wǎng)絡(luò)連接建立模塊,具體用于在所述服務(wù)器節(jié)點(diǎn)中設(shè)置心跳監(jiān)聽(tīng)端口,在該心跳監(jiān)聽(tīng)端口和所述服務(wù)器IP地址列表中記載的其它服務(wù)器節(jié)點(diǎn)的心跳監(jiān)聽(tīng)端口之間建立網(wǎng)絡(luò)連接。
[0036]所述的資源同步處理模塊,具體用于向和本服務(wù)器節(jié)點(diǎn)建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地保存的IP列表特征值的心跳數(shù)據(jù)包;
[0037]當(dāng)接收到其它服務(wù)器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接發(fā)送過(guò)來(lái)的心跳數(shù)據(jù)包后,提取該心跳數(shù)據(jù)包中攜帶的第一 IP列表特征值,將該心跳數(shù)據(jù)包中攜帶的第一 IP列表特征值和本地存儲(chǔ)的第二 IP列表特征值進(jìn)行比較,當(dāng)所述第一 IP列表特征值大于所述第二 IP列表特征值時(shí),則通過(guò)網(wǎng)絡(luò)連接向所述其它服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)器IP地址列表更新請(qǐng)求,接收到所述其它服務(wù)器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的服務(wù)器IP地址列表更新響應(yīng)后,用所述服務(wù)器IP地址列表更新響應(yīng)中攜帶的所述其它服務(wù)器節(jié)點(diǎn)的服務(wù)器IP地址列表替換本地原先存儲(chǔ)的服務(wù)器IP地址列表,并且用所述第一 IP列表特征值替換本地原先存儲(chǔ)的第二 IP列表特征值;
[0038]當(dāng)所述第一 IP列表特征值不大于所述第二 IP列表特征值時(shí),則不向所述其它服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)器IP地址列表更新請(qǐng)求。
[0039]所述的資源管理模塊,具體用于管理數(shù)據(jù)資源列表,該資源地址列表用來(lái)標(biāo)記本地服務(wù)器節(jié)點(diǎn)所擁有的數(shù)據(jù)資源,根據(jù)所述數(shù)據(jù)資源列表生成資源狀態(tài)特征值,該資源狀態(tài)特征值對(duì)應(yīng)了所述數(shù)據(jù)資源列表的版本值,將所述資源狀態(tài)特征值進(jìn)行保存;
[0040]所述的資源同步處理模塊,具體用于向和本服務(wù)器節(jié)點(diǎn)建立網(wǎng)絡(luò)連接的其它服務(wù)器節(jié)點(diǎn)發(fā)送攜帶本地保存的資源狀態(tài)特征值和IP列表特征值的心跳數(shù)據(jù)包;當(dāng)接收到其它服務(wù)器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接發(fā)送過(guò)來(lái)的心跳數(shù)據(jù)包后,提取該心跳數(shù)據(jù)包中攜帶的第一資源狀態(tài)特征值,將該心跳數(shù)據(jù)包中攜帶的第一資源狀態(tài)特征值和本地存儲(chǔ)的第二資源狀態(tài)特征值進(jìn)行比較,當(dāng)所述第一資源狀態(tài)特征值大于所述第二資源狀態(tài)特征