本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種設(shè)備間的組網(wǎng)方法、裝置及系統(tǒng)。
背景技術(shù):
目前在設(shè)計(jì)數(shù)據(jù)通信系統(tǒng)緩存時(shí),為了更近使用緩存(速度更快),接入層集群中每臺(tái)設(shè)備都需要在進(jìn)程中存儲(chǔ)公共數(shù)據(jù)。這些公共數(shù)據(jù)的來(lái)源是不同的,從信息源獲取的成本較大,因此為了在集群中提高緩存的使用率以及保持一致性,需要在集群中的設(shè)備之間同步緩存數(shù)據(jù)。
在緩存數(shù)據(jù)同步的過(guò)程中,首先需要通過(guò)集群中設(shè)備組網(wǎng),建立設(shè)備間的網(wǎng)絡(luò),然后,基于該網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)集群中設(shè)備之間的緩存數(shù)據(jù)同步。通常緩存數(shù)據(jù)同步過(guò)程中,采用master/slave(主/從)模型來(lái)組網(wǎng)。
然而,目前的master/slave組網(wǎng)方式,需要進(jìn)行大量復(fù)雜的手動(dòng)配置,比如需要在集群中各設(shè)備上手工配置哪些設(shè)備作為master,哪些作為slave等;因此,降低了設(shè)備間的組網(wǎng)效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種設(shè)備間的組網(wǎng)方法、裝置及系統(tǒng),可以提高設(shè)備間的組網(wǎng)效率。
本發(fā)明實(shí)施例提供一種設(shè)備間的組網(wǎng)方法,包括:
獲取候選列表信息,所述候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址;
根據(jù)候選列表信息向所述設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求;
接收所述其他候選主設(shè)備根據(jù)所述第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果;
根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備;
若是,則與所述設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以組成網(wǎng)絡(luò)。
相應(yīng)的,本發(fā)明實(shí)施例還提供一種設(shè)備間的組網(wǎng)裝置,包括:
獲取單元,用于獲取候選列表信息,所述候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址;
發(fā)送單元,用于根據(jù)候選列表信息向所述設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求;
結(jié)果接收單元,用于接收所述其他候選主設(shè)備根據(jù)所述第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果;
第一確定單元,用于根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備;
通信建立單元,用于在確定單元確定本設(shè)備為主設(shè)備時(shí),與所述設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以組成網(wǎng)絡(luò)。
相應(yīng)的,本發(fā)明實(shí)施例還提供一種設(shè)備間的組網(wǎng)系統(tǒng),包括本發(fā)明實(shí)施例任一提供的設(shè)備間的組網(wǎng)裝置。
本發(fā)明實(shí)施例采用獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址,然后,根據(jù)候選列表信息向該設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求,接收該其他候選主設(shè)備根據(jù)該第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果,根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備,若是,則與該設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以組成網(wǎng)絡(luò)。由于該方案可以通過(guò)設(shè)備間的自協(xié)商機(jī)制自動(dòng)選舉出主設(shè)備,以實(shí)現(xiàn)設(shè)備間的組網(wǎng);其無(wú)需在每臺(tái)設(shè)備上進(jìn)行大量復(fù)雜的手動(dòng)配置,因此,可以提高設(shè)備間的組網(wǎng)速度以及效率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1a是本發(fā)明實(shí)施例提供的設(shè)備間的組網(wǎng)系統(tǒng)的場(chǎng)景示意圖;
圖1b是本發(fā)明實(shí)施例提供的設(shè)備間的組網(wǎng)方法的流程示意圖;
圖1c是本發(fā)明實(shí)施例提供的一種設(shè)備集群的示意圖;
圖1d是本發(fā)明實(shí)施例提供的另一種設(shè)備集群的示意圖;
圖1e是本發(fā)明實(shí)施例提供的協(xié)商選舉主設(shè)備的示意圖;
圖1f是本發(fā)明實(shí)施例提供的組網(wǎng)示意圖;
圖2是本發(fā)明實(shí)施例提供的協(xié)商主設(shè)備的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的請(qǐng)求處理的流程示意圖;
圖4是本發(fā)明實(shí)施例提供的一種購(gòu)物號(hào)系統(tǒng)的結(jié)構(gòu)示意圖;
圖5a是本發(fā)明實(shí)施例提供的候選服務(wù)器在協(xié)商過(guò)程中的一種處理流程示意圖;
圖5b是本發(fā)明實(shí)施例提供的候選服務(wù)器在協(xié)商過(guò)程中的另一種處理流程示意圖;
圖6a是本發(fā)明實(shí)施例提供的設(shè)備間的組網(wǎng)裝置的第一種結(jié)構(gòu)示意圖;
圖6b是本發(fā)明實(shí)施例提供的設(shè)備間的組網(wǎng)裝置的第二種結(jié)構(gòu)示意圖;
圖6c是本發(fā)明實(shí)施例提供的設(shè)備間的組網(wǎng)裝置的第三種結(jié)構(gòu)示意圖;
圖6d是本發(fā)明實(shí)施例提供的設(shè)備間的組網(wǎng)裝置的第四種結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供了一種設(shè)備間的組網(wǎng)方法、裝置及系統(tǒng)。
本發(fā)明實(shí)施例提供了一種設(shè)備間的組網(wǎng)系統(tǒng),該系統(tǒng)可以包括本發(fā)明實(shí)施例所提供的任一種設(shè)備間的組網(wǎng)裝置,參見(jiàn)圖1a,以設(shè)備為服務(wù)器為例,該設(shè)備間的組網(wǎng)裝置具體可以集成在服務(wù)器中。在圖1a中,該組網(wǎng)裝置可以集成在各候選主設(shè)備即候選服務(wù)器中。此外,該設(shè)備間的組網(wǎng)系統(tǒng)還可以包括其他的設(shè)備,比如,還可以包括從屬于主設(shè)備的從設(shè)備等等。其中,從設(shè)備可以用于在確定主設(shè)備之后,與主設(shè)備建立通信通道以實(shí)現(xiàn)組網(wǎng)等等。
如圖1a所示,當(dāng)需要進(jìn)行組網(wǎng)時(shí),比如,在同步緩存數(shù)據(jù)的過(guò)程中需要組網(wǎng)時(shí),候選主設(shè)備(如候選服務(wù)器)可以獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址,然后,根據(jù)候選列表信息向該設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求,接收該其他候選主設(shè)備根據(jù)該第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果,根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備,若是,則與該設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以組成網(wǎng)絡(luò)。
此外,候選主設(shè)備在確定本設(shè)備不為主設(shè)備時(shí),可以確定本設(shè)備為從設(shè)備,并且與當(dāng)前的主設(shè)備建立通信通道,以實(shí)現(xiàn)組網(wǎng)。比如,當(dāng)確定本設(shè)備不為主設(shè)備,且當(dāng)前已存在主設(shè)備時(shí),可以確定本設(shè)備為從設(shè)備。
以下將分別進(jìn)行詳細(xì)說(shuō)明。
實(shí)施例一、
本實(shí)施例將從設(shè)備間的組網(wǎng)裝置的角度進(jìn)行描述,該設(shè)備間的組網(wǎng)裝置具體可以集成在服務(wù)器等網(wǎng)絡(luò)設(shè)備中。
一種設(shè)備間的組網(wǎng)方法,包括:獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址,然后,根據(jù)候選列表信息向該設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求,接收該其他候選主設(shè)備根據(jù)該第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果,根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備,若是,則與該設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以組成網(wǎng)絡(luò)。
如圖1b所示,該設(shè)備間的組網(wǎng)方法的具體流程可以如下:
101、獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址。
其中,候選列表信息可以預(yù)先配置,并保存在設(shè)備的存儲(chǔ)單元中,比如,可以預(yù)先在候選主設(shè)備中配置候選列表信息。此時(shí),候選主設(shè)備可以從本地存儲(chǔ)單元中提取候選列表信息。
本實(shí)施例中候選主設(shè)備可用提供主機(jī)服務(wù)的候選設(shè)備,該候選主設(shè)備可以有多個(gè),此時(shí),該候選列表信息可以包括每個(gè)候選主設(shè)備的網(wǎng)絡(luò)地址。實(shí)際應(yīng)用中,該網(wǎng)絡(luò)地址可以為候選主設(shè)備的ip(internetprotocoladdress,互聯(lián)網(wǎng)協(xié)議地址)等。
比如,參考圖1c,候選主設(shè)備可以為服務(wù)器,且數(shù)量為3,即設(shè)備集群包括候選服務(wù)器1、候選服務(wù)器2、以及候選服務(wù)器3;此時(shí),候選列表信息可以包括候選服務(wù)器1的ip記為ip1、候選服務(wù)器2的的ip記為ip2以及候選服務(wù)器3的的ip記為ip3。
實(shí)際應(yīng)用中,該設(shè)備集群還可以包括從設(shè)備,即該設(shè)備集群內(nèi)存在候選主設(shè)備和從設(shè)備。也即在組網(wǎng)初始階段,設(shè)備集群存在兩種設(shè)備,一種是候選主設(shè)備,另一種是已經(jīng)確定的從設(shè)備。參考圖1d,設(shè)備集群包括:候選服務(wù)器1、候選服務(wù)器2、以及候選服務(wù)器3以及從服務(wù)器1、從服務(wù)器2、從服務(wù)器3。
102、根據(jù)候選列表信息向該設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求。
具體地,以分多個(gè)候選主設(shè)備分別集成該該設(shè)備間的組網(wǎng)裝置為例,該候選主設(shè)備可以分別向其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求,以向其他候選主設(shè)備協(xié)商或者詢問(wèn)自己是否能夠提供主機(jī)服務(wù),即協(xié)商或詢問(wèn)自己是否能夠成為主設(shè)備。
比如,參考圖1e,候選服務(wù)器1可以分別向候選服務(wù)器2和候選服務(wù)器3發(fā)送主設(shè)備協(xié)商請(qǐng)求。同理,候選服務(wù)器2可以分別向候選服務(wù)器1和候選服務(wù)器3發(fā)送主設(shè)備協(xié)商請(qǐng)求,候選服務(wù)器3可以分別向候選服務(wù)器1和候選服務(wù)器2發(fā)送主設(shè)備協(xié)商請(qǐng)求;通過(guò)候選服務(wù)器直接相互發(fā)送協(xié)商請(qǐng)求,這樣可以實(shí)現(xiàn)通過(guò)候選服務(wù)器之間相互協(xié)商來(lái)選舉出成主設(shè)備。
實(shí)際應(yīng)用中,第一主設(shè)備協(xié)商請(qǐng)求還可以攜帶本設(shè)備的網(wǎng)絡(luò)地址如本設(shè)備的ip,以便其他候選主設(shè)備可以基于自己的網(wǎng)絡(luò)地址以及請(qǐng)求發(fā)送方的網(wǎng)絡(luò)地址來(lái)返回相應(yīng)的協(xié)商結(jié)果。
103、接收該其他候選主設(shè)備根據(jù)該第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果。
其中,協(xié)商可以結(jié)果可以包括:用于指示同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息、用于指示不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息。
比如,當(dāng)選取設(shè)備ip地址最大的設(shè)備作為主設(shè)備時(shí),當(dāng)其他候選主設(shè)備的ip大于請(qǐng)求發(fā)送方設(shè)備的ip時(shí),返回不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息;當(dāng)其他候選主設(shè)備的ip不大于請(qǐng)求發(fā)送方設(shè)備的ip時(shí),返回同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息?;蛘?,又比如,當(dāng)其他候選主設(shè)備已經(jīng)被選舉為主設(shè)備時(shí),可以返回不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息;或者當(dāng)其他候選主設(shè)備的存儲(chǔ)空間不足或者網(wǎng)絡(luò)連接不穩(wěn)定時(shí),返回同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息。
實(shí)際應(yīng)用中,可以采用具體參數(shù)的值來(lái)表示同意或者不同意發(fā)送方作為設(shè)備,也即本實(shí)施例指示信息可以包括用于指示是否同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示參數(shù)。
其中,指示參數(shù)可以為用于指示是否同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的參數(shù),比如,該指示參數(shù)的不同參數(shù)值可表示對(duì)于請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的態(tài)度(同意或不同意)。
例如,當(dāng)指示參數(shù)的參數(shù)值為0時(shí)表示:同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備;當(dāng)指示參數(shù)的參數(shù)值為3時(shí)表示:不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備。
又比如,可以該指示參數(shù)的不同字段內(nèi)容可表示對(duì)于請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的態(tài)度(同意或不同意);如,當(dāng)指示參數(shù)為y時(shí)表示:同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備;當(dāng)指示參數(shù)為n時(shí)表示:不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備。
參考圖1e,候選服務(wù)器1分別向候選服務(wù)器2和候選服務(wù)器3發(fā)送主設(shè)備協(xié)商請(qǐng)求之后,候選服務(wù)器2和候選服務(wù)器3將會(huì)根據(jù)該請(qǐng)求返回相應(yīng)的協(xié)商結(jié)果。該協(xié)商結(jié)果可以用于指示是否同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示參數(shù)。比如,該協(xié)商結(jié)果可以包括:指示參數(shù)1和指示參數(shù)2,該指示參數(shù)的參數(shù)值可以為0、指示參數(shù)2的參數(shù)值可以為3。
104、根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備,若是,則執(zhí)行步驟105。
具體地,協(xié)商結(jié)果包括:指示是否同意請(qǐng)求發(fā)送方設(shè)備(即本設(shè)備)作為主設(shè)備的指示參數(shù),此時(shí),步驟“根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備”可以包括:
獲取指示同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量;
當(dāng)數(shù)量大于或等于預(yù)設(shè)閾值時(shí),則確定本設(shè)備為主設(shè)備;
當(dāng)數(shù)量小于預(yù)設(shè)閾值時(shí),則確定本設(shè)備不為主設(shè)備,比如可以確定本設(shè)備為從設(shè)備等。
該預(yù)設(shè)閾值可以基于候選主設(shè)備的數(shù)量來(lái)設(shè)定,優(yōu)選地,該預(yù)設(shè)閾值可以比候選主設(shè)備的總數(shù)量小一;也即在其他候選主設(shè)備均同意本設(shè)備作為主設(shè)備時(shí),才確定本設(shè)備為主設(shè)備。比如候選主設(shè)備為n個(gè)(n>1,且為正整數(shù)),此時(shí)預(yù)設(shè)閾值可以為n-1。
又比如,在一些情況下,在組網(wǎng)前某個(gè)候選主設(shè)備已經(jīng)確定為主設(shè)備,那么此時(shí),協(xié)商結(jié)果還可以包括:用于指示請(qǐng)求接收方設(shè)備即其他候選主設(shè)備為主設(shè)備的指示信息,指示信息可以包括用于其他候選主設(shè)備為主設(shè)備的指示參數(shù),實(shí)際應(yīng)用中,可以不同的參數(shù)值來(lái)指示其他候選主設(shè)備是否為主設(shè)備,比如,可以參數(shù)值為1的指示參數(shù)來(lái)指其他候選主設(shè)備為主設(shè)備等。此時(shí),“根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備”可以包括:
當(dāng)協(xié)商結(jié)果包括用于指示其他候選主設(shè)備為主設(shè)備的指示參數(shù)時(shí),確定本設(shè)備不為主設(shè)備;
當(dāng)協(xié)商結(jié)果不包括用于指示其他候選主設(shè)備為主設(shè)備的指示參數(shù)時(shí),獲取指示同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量;
根據(jù)該數(shù)量確定本設(shè)備是否為主設(shè)備。
比如,可以將該數(shù)量與預(yù)設(shè)閾值進(jìn)行比較,大于該預(yù)設(shè)閾值時(shí),確定本設(shè)備為主設(shè)備,否則,確定本設(shè)備不為主設(shè)備。
可選地,在某些情況下,在組網(wǎng)前候選主設(shè)備已經(jīng)確定為從設(shè)備,那么協(xié)商結(jié)果還可以包括:用于指示請(qǐng)求接收方設(shè)備即其他候選主設(shè)備為從設(shè)備的指示信息,如指示參數(shù);實(shí)際應(yīng)用中,可以通過(guò)不同參數(shù)值的指示參數(shù)來(lái)指示其他候選主設(shè)備是否為從設(shè)備,比如,可以通過(guò)參數(shù)值為2的指示參數(shù)來(lái)指示其他候選主設(shè)備為從設(shè)備;此時(shí),步驟“根據(jù)該數(shù)量確定本設(shè)備是否為主設(shè)備”可以包括:
根據(jù)用于指示其他候選主設(shè)備為從設(shè)備的指示參數(shù)的數(shù)量和候選主設(shè)備的總數(shù)量設(shè)置預(yù)設(shè)閾值;
將獲取指示同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量與該預(yù)設(shè)閾值進(jìn)行比較;
當(dāng)大于或者等于預(yù)設(shè)閾值時(shí),則確定本設(shè)備為主設(shè)備;否則,不為主設(shè)備。
比如,候選主設(shè)備的數(shù)量為n,如果用于指示其他候選主設(shè)備為從設(shè)備的指示參數(shù)的數(shù)量為m,那么此時(shí),預(yù)設(shè)閾值可以為n-m。
105、與該設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以實(shí)現(xiàn)組網(wǎng)。
為方便設(shè)備網(wǎng)絡(luò)的擴(kuò)容、縮容;本實(shí)施例中與其他設(shè)備建立通信通道,可以由設(shè)備集群內(nèi)其他設(shè)備主動(dòng)搜尋主設(shè)備,并發(fā)起通信連接,以實(shí)現(xiàn)擴(kuò)容、縮容自動(dòng)化。也即步驟“與該設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道”可以包括:
接收設(shè)備集群內(nèi)其他設(shè)備發(fā)起的主設(shè)備詢問(wèn)請(qǐng)求;
根據(jù)該主設(shè)備詢問(wèn)請(qǐng)求返回用于指示本設(shè)備為主設(shè)備的應(yīng)答信息;
接收該其他設(shè)備根據(jù)該應(yīng)答信息發(fā)送的通信建立請(qǐng)求;
根據(jù)該通信建立請(qǐng)求與該其他候選主設(shè)備建立通信通道。
本實(shí)施例中設(shè)備集群可以包括候選主設(shè)備這一種設(shè)備,或者可以包括候選主設(shè)備和從設(shè)備這兩種設(shè)備。當(dāng)設(shè)備集群僅包括候選主設(shè)備時(shí),設(shè)備集群內(nèi)其他設(shè)備指的是除本設(shè)備以外的候選主設(shè)備;當(dāng)設(shè)備集群包括候選主設(shè)備和從設(shè)備時(shí),設(shè)備集群內(nèi)其他設(shè)備指的是除本設(shè)備外的候選主設(shè)備、從設(shè)備。
參考圖1e,候選服務(wù)器1、候選服務(wù)器2、候選服務(wù)器3相互協(xié)商選舉候選服務(wù)器3為主設(shè)備。參考圖1f,候選服務(wù)器1、候選服務(wù)器2、從服務(wù)器1、從服務(wù)器2、從服務(wù)器3將會(huì)根據(jù)候選列表信息主動(dòng)搜尋或者詢問(wèn)當(dāng)前的主設(shè)備,具體地,這些設(shè)備主動(dòng)根據(jù)候列表信息向設(shè)備集群內(nèi)其余設(shè)備發(fā)送主設(shè)備詢問(wèn)請(qǐng)求,搜尋或者詢問(wèn)當(dāng)前的主設(shè)備;以主設(shè)備是候選服務(wù)器3為例,然后,候選服務(wù)器1、候選服務(wù)器2、從服務(wù)器1、從服務(wù)器2、從服務(wù)器3將會(huì)主動(dòng)與候選服務(wù)器3建立通信通道,以完成組網(wǎng)。
以上介紹在確定本設(shè)備為主設(shè)備的情況下,介紹本設(shè)備與其他設(shè)備建立通信的過(guò)程。下面介紹在確定本設(shè)備為從設(shè)備的情況下,為方便設(shè)備網(wǎng)絡(luò)的擴(kuò)容、縮容,本設(shè)備與其他設(shè)備建立通信的過(guò)程。具體地,本發(fā)明實(shí)施例方法,在確定該本設(shè)備為從設(shè)備之后還可以包括:
根據(jù)該候選列表信息向該其他候選主設(shè)備發(fā)送主設(shè)備詢問(wèn)請(qǐng)求;
接收該其他候選主設(shè)備根據(jù)主設(shè)備詢問(wèn)請(qǐng)求返回的應(yīng)答信息;
根據(jù)該應(yīng)答信息確定當(dāng)前所協(xié)商的主設(shè)備,并與該主設(shè)備建立通信通道。
本發(fā)明實(shí)施例采用從設(shè)備主動(dòng)搜尋當(dāng)前選的主設(shè)備,并主動(dòng)與主設(shè)備建立通信的方式,可以方便網(wǎng)絡(luò)的擴(kuò)容和縮容,可以支持熱插撥式擴(kuò)容縮容。比如,在有新的從設(shè)備加入時(shí),該新的從設(shè)備只需搜尋當(dāng)前的主設(shè)備,然后,主動(dòng)與該主設(shè)備建立通信通道,無(wú)需停止或者重啟服務(wù),修改各設(shè)備的配置信息;同樣在縮容時(shí),只需該縮容設(shè)備斷開(kāi)與主設(shè)備的連接即可,無(wú)需停止或者重啟服務(wù),修改各設(shè)備的配置信息;本發(fā)明方案相對(duì)于現(xiàn)有組網(wǎng)方式(現(xiàn)有組網(wǎng)方式是由主設(shè)備連接各從設(shè)備組成網(wǎng)絡(luò),在擴(kuò)容或縮容時(shí)需要停止或者重啟服務(wù)器修改手動(dòng)修改設(shè)備上的主從配置信息等),可以提高擴(kuò)容的速度和效率。
可選地,在確定本設(shè)備不為主設(shè)備時(shí),可以確定本設(shè)備為從設(shè)備;具體地,本實(shí)施例組網(wǎng)方法還可以包括:
當(dāng)確定本設(shè)備不為主設(shè)備時(shí),確定當(dāng)前是否已經(jīng)存在主設(shè)備;
若是,則確定該本設(shè)備為從設(shè)備。
也就是說(shuō),在候選主設(shè)備之間相互協(xié)商出主設(shè)備之后,設(shè)備集群內(nèi)其他候選主設(shè)備主動(dòng)成為從設(shè)備,并且主動(dòng)與選舉出的主設(shè)備建立通信通道組成網(wǎng)絡(luò)。
可選地,在確定本設(shè)備為主設(shè)備,或者在確定本設(shè)備為從設(shè)備之后,可以對(duì)本設(shè)備的狀態(tài)標(biāo)識(shí)進(jìn)行修改,以使得修改后的狀態(tài)標(biāo)識(shí)指示本設(shè)備為主設(shè)備或者從設(shè)備。比如,該狀態(tài)標(biāo)識(shí)可以為某個(gè)參數(shù),即狀態(tài)參數(shù),該狀態(tài)參數(shù)的參數(shù)值可以指示本設(shè)備為主設(shè)備、或者從設(shè)備等。比如,狀態(tài)參數(shù)可以為state,當(dāng)state=0時(shí),表明設(shè)備處于初始狀態(tài),當(dāng)state=1時(shí),表明設(shè)備為主設(shè)備,此時(shí)該設(shè)備處于master狀態(tài),當(dāng)state=2時(shí),表明設(shè)備為從設(shè)備,此時(shí),該設(shè)備處于slave狀態(tài)。
例如,在初始階段state=0,當(dāng)確定本設(shè)備為主設(shè)備時(shí),可以修改state的值,將state的值從0變到1,使得state=1;當(dāng)確定本設(shè)備從設(shè)備時(shí),將state的值從0變到2,使得state=2。
基于上述的描述,參考圖2,對(duì)于某個(gè)候選主設(shè)備,在組網(wǎng)前不存在主設(shè)備和從設(shè)備的情況下,其協(xié)商主設(shè)備的過(guò)程可以如下:
200、獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址。
201、根據(jù)候選列表信息向設(shè)備集群內(nèi)其他候選主設(shè)備發(fā)送主設(shè)備協(xié)商請(qǐng)求。
比如,候選服務(wù)器1分別向候選服務(wù)器2和候選服務(wù)器3發(fā)送主設(shè)備協(xié)商請(qǐng)求。
202、接收其他候選主設(shè)備根據(jù)該請(qǐng)求返回的協(xié)商結(jié)果,該協(xié)商結(jié)果包括:用于指示其他候選主設(shè)備是否同意本設(shè)備作為主設(shè)備的指示參數(shù)。
比如,候選服務(wù)器1接收候選服務(wù)器2返回的用于指示候選服務(wù)器2是否同意本設(shè)備作為主設(shè)備的指示參數(shù),候選服務(wù)器1接收候選服務(wù)器3返回的用于指示候選服務(wù)器2是否同意本設(shè)備作為主設(shè)備的指示參數(shù)。
其中,用于指示其他候選主設(shè)備是否同意本設(shè)備作為主設(shè)備的指示參數(shù)可以同不同數(shù)值表達(dá),比如,數(shù)值為0表示同意,數(shù)值為3表示不同意。
203、獲取同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量。
比如,當(dāng)數(shù)值為3表示不同意本設(shè)備作為主設(shè)備的參數(shù)時(shí),此時(shí),獲取的是3的個(gè)數(shù)。
204、判斷該數(shù)量是否等于候選主設(shè)備的總數(shù)量,若是,則執(zhí)行步驟205,若否,則執(zhí)行步驟206。
在組網(wǎng)前不存在主從設(shè)備的情況下,本發(fā)明實(shí)施例可以判斷同意本設(shè)備作為主設(shè)備的指示參數(shù)數(shù)量是否等于候選主設(shè)備的總數(shù)量,也即判斷是否全票通過(guò)本設(shè)備稱為主設(shè)備。
比如,判斷數(shù)值3的個(gè)數(shù)是否等于候選服務(wù)器的總數(shù)量即2,假設(shè)數(shù)值3的個(gè)數(shù)為2時(shí),表示候選服務(wù)器2和候選服務(wù)器3均同意候選服務(wù)器1作為主設(shè)備,此時(shí)確定候選服務(wù)器1為主設(shè)備。
205、對(duì)本設(shè)備的狀態(tài)標(biāo)識(shí)進(jìn)行更改,以使得該狀態(tài)標(biāo)識(shí)指示本設(shè)備為主設(shè)備。
比如,將狀態(tài)標(biāo)識(shí)的值從0變到1,使得state=1。
206、判斷當(dāng)前是否已存在主設(shè)備,若是,則執(zhí)行步驟207,若否,則返回步驟200。
本實(shí)施例中,在已經(jīng)協(xié)商或者確定了主設(shè)備時(shí),可以將所有候選主設(shè)備作為從設(shè)備。
207、對(duì)本設(shè)備的狀態(tài)標(biāo)識(shí)進(jìn)行更改,以使得該狀態(tài)標(biāo)識(shí)指示本設(shè)備為從設(shè)備。
比如,將狀態(tài)標(biāo)識(shí)的值從0變到2,使得state=2。
以上是站在候選主設(shè)備主動(dòng)詢問(wèn)其他候選主設(shè)備的角度來(lái)介紹本發(fā)明的協(xié)商過(guò)程,然而,在設(shè)備之間相互協(xié)商的過(guò)程中,某個(gè)設(shè)備不僅需要發(fā)送協(xié)商請(qǐng)求給其他候選主設(shè)備詢問(wèn)其是否為主設(shè)備,而且還需要接收其他候選主設(shè)備發(fā)送的協(xié)商請(qǐng)求,并對(duì)其進(jìn)行應(yīng)答或者響應(yīng),以便其他候選主設(shè)備確定自身是否作為主設(shè)備。下面將詳細(xì)介紹候選主設(shè)備對(duì)其他候選主設(shè)備發(fā)送的協(xié)商請(qǐng)求的處理過(guò)程:
在上述步驟內(nèi)容的基礎(chǔ)上,本實(shí)施例組網(wǎng)方法還可包括:
接收其他候選主設(shè)備根據(jù)候選列表信息發(fā)送的第二主設(shè)備協(xié)商請(qǐng)求,該第二主設(shè)備協(xié)商請(qǐng)求攜帶其他候選主設(shè)備的網(wǎng)絡(luò)地址;
根據(jù)該本設(shè)備的網(wǎng)絡(luò)地址和其他候選主設(shè)備的網(wǎng)絡(luò)地址,向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果。
比如,候選服務(wù)器1接收候選服務(wù)器2發(fā)送的主設(shè)備協(xié)商請(qǐng)求,該請(qǐng)求攜帶候選服務(wù)器2的ip地址即ip2,候選服務(wù)器1可以根據(jù)自己的ip地址(即ip1)與候選服務(wù)器的ip地址向候選服務(wù)器2返回相應(yīng)的協(xié)商結(jié)果。
當(dāng)協(xié)商結(jié)果包括用于指示是否同意其他候選主設(shè)備作為主設(shè)備的指示信息,比如指示參數(shù)時(shí),候選主設(shè)備可以根據(jù)自己的網(wǎng)絡(luò)地址和其他候選主設(shè)備的網(wǎng)絡(luò)向其他候選主設(shè)備返回同意或者不同意其他候選主設(shè)備作為主設(shè)備的指示參數(shù)。比如,在通過(guò)指示參數(shù)的參數(shù)值指示同意或者不同意其他候選主設(shè)備作為主設(shè)備時(shí),可以向其他候選主設(shè)備返回不同參數(shù)值的指示參數(shù)。如可以返回參數(shù)值為0的指示參數(shù)給其他候選主設(shè)備,以表明同意其他候選主設(shè)備作為主設(shè)備;又如返回參數(shù)值為3的指示參數(shù)給其他候選主設(shè)備,以表明不同意其他候選主設(shè)備作為主設(shè)備。
本實(shí)施例中,根據(jù)本設(shè)備和其他候選主設(shè)備的網(wǎng)絡(luò)地址返回協(xié)商結(jié)果的方式有多種,比如,可以將兩個(gè)網(wǎng)絡(luò)地址進(jìn)行比較,根據(jù)比較結(jié)果來(lái)返回響應(yīng)的協(xié)商結(jié)果。也即步驟“根據(jù)該本設(shè)備的網(wǎng)絡(luò)地址和其他候選主設(shè)備的網(wǎng)絡(luò)地址,向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果”可以包括:
將本設(shè)備的網(wǎng)絡(luò)地址與其他候選主設(shè)備的網(wǎng)絡(luò)地址進(jìn)行比較,得到比較結(jié)果;
根據(jù)該比較結(jié)果向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果。
以網(wǎng)絡(luò)地址為ip為例,可以比較本設(shè)備與其他候選主設(shè)備的ip大小,比如,以選取ip最大的候選主設(shè)備作為主設(shè)備為例當(dāng)本設(shè)備的ip小于其他候選主設(shè)備的ip時(shí),返回用于指示同意其他候選主設(shè)備作為主設(shè)備的指示從參數(shù)給其他候選主設(shè)備;當(dāng)本設(shè)備的ip不小于其他候選主設(shè)備的ip時(shí),返回用于指示不同意其他候選主設(shè)備作為主設(shè)備的指示從參數(shù)給其他候選主設(shè)備。
例如,在候選服務(wù)器1接收候選服務(wù)器2發(fā)送的主設(shè)備協(xié)商請(qǐng)求之后,該請(qǐng)求攜帶候選服務(wù)器2的ip地址即ip2,當(dāng)候選服務(wù)器1自己的ip地址(即ip1)小于ip2時(shí),返回參數(shù)值為0的指示參數(shù)給候選服務(wù)器2,以告知候選服務(wù)器2其同意候選服務(wù)器2作為主設(shè)備;當(dāng)ip1不小于ip2時(shí),返回參數(shù)為3指示參數(shù)給候選服務(wù)器2,以告知候選服務(wù)器2其不同意候選服務(wù)器2作為主設(shè)備。同理候選服務(wù)器1對(duì)于候選服務(wù)器3發(fā)送的協(xié)商請(qǐng)求也采用類似方式。
應(yīng)當(dāng)理解的是:在一些其他實(shí)施例中,還可以選取ip最小的候選主設(shè)備作為主設(shè)備,其選取的過(guò)程與上述選取ip最大的候選主設(shè)備作為主設(shè)備類似,此處不再贅述。
可選地,考慮到在某些情況下,有些候選主設(shè)備在組網(wǎng)之前已經(jīng)是主設(shè)備或者從設(shè)備,那么此時(shí),在接收到其他候選主設(shè)備發(fā)送的協(xié)商請(qǐng)求之后,還需要先進(jìn)行主設(shè)備和從設(shè)備的判斷,以便可以快速確定主設(shè)備進(jìn)行組網(wǎng)。也即本發(fā)明實(shí)施例方法在接收到第二設(shè)備協(xié)商請(qǐng)求之后,返回協(xié)商結(jié)果之前,還可以包括:
判斷該本設(shè)備當(dāng)前是否為主設(shè)備;
若不為主設(shè)備,則判斷本設(shè)備當(dāng)前是否為從設(shè)備;
若不為從設(shè)備,則執(zhí)行根據(jù)該本設(shè)備的網(wǎng)絡(luò)地址和其他候選主設(shè)備的網(wǎng)絡(luò)地址,向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果的步驟。
可選地,當(dāng)判斷本設(shè)備當(dāng)前為主設(shè)備或者從設(shè)備時(shí),還可以向其他候選主設(shè)備相應(yīng)的協(xié)商結(jié)果;此時(shí),協(xié)商結(jié)果可以包括:用于指示本設(shè)備為主設(shè)備或者從設(shè)備的指示信息;比如,可以包括用于指示本設(shè)備為主設(shè)備或者從設(shè)備的指示參數(shù)。實(shí)際應(yīng)用中可以通過(guò)不同參數(shù)值的指示參數(shù)來(lái)指示本設(shè)備為主設(shè)備或者從設(shè)備。比如,可以用參數(shù)值為1的指示參數(shù)來(lái)表示本設(shè)備為主設(shè)備,還可以用于參數(shù)值為2的指示參數(shù)來(lái)表示本設(shè)備為從設(shè)備,等等。
參考圖3,對(duì)于某個(gè)候選主設(shè)備,在接收到主設(shè)備協(xié)商請(qǐng)求之后的處理流程可以如下:
301、接收到設(shè)備集群內(nèi)其他候選主設(shè)備發(fā)送的主設(shè)備協(xié)商請(qǐng)求,該請(qǐng)求攜帶其他候選主設(shè)備的網(wǎng)絡(luò)地址,如ip。
302、判斷本設(shè)備當(dāng)前是否為主設(shè)備,若否,則執(zhí)行步驟303,若是,則執(zhí)行步驟307。
303、判斷本設(shè)備當(dāng)前是否為從設(shè)備,若否,則執(zhí)行步驟304,若是,則執(zhí)行步驟308。
304、判斷本設(shè)備的ip是否比其他候選主設(shè)備的ip小,若是,則執(zhí)行步驟305,若否,則執(zhí)行步驟306。
305、返回用于指示同意其他候選主設(shè)備作為主設(shè)備的第一指示參數(shù)給其他候選主設(shè)備。
306、返回用于指示不同意其他候選主設(shè)備作為主設(shè)備的第二指示參數(shù)給其他候選主設(shè)備。
307、返回用于指示本設(shè)備為主設(shè)備的第三指示參數(shù)給其他候選主設(shè)備。
308、返回用于指示本設(shè)備為從設(shè)備的第四指示參數(shù)給其他候選主設(shè)備。
其中,第一指示參數(shù)、第二指示參數(shù)、第三指示參數(shù)、第四指示參數(shù)可以為具有不同參數(shù)值的指示參數(shù),如第一指示參數(shù)可以為0、第二指示參數(shù)可以為3、第三指示參數(shù)可以為1、第四指示參數(shù)可以為2。
比如,候選服務(wù)器1在接收候選服務(wù)器2發(fā)送的協(xié)商請(qǐng)求之后,可以判斷自己是否為主設(shè)備,若是,則返回參數(shù)值為1的指示參數(shù)給候選服務(wù)器2,以告知候選服務(wù)器2該候選服務(wù)器1為主設(shè)備,若否,則候選服務(wù)器1進(jìn)一步判斷自己是否為從設(shè)備,若是,則返回參數(shù)值為2的指示參數(shù)給候選服務(wù)器2;若不是從設(shè)備,則候選服務(wù)器1需要比較自己與候選服務(wù)器2的ip,若自己的ip小于候選服務(wù)器2的ip,那么將會(huì)返回參數(shù)值為0的指示參數(shù)給候選服務(wù)器2,若不小于候選服務(wù)器2的ip,則返回參數(shù)值為3的指示參數(shù)給候選服務(wù)器2。
可選地,為提高設(shè)備網(wǎng)絡(luò)的穩(wěn)定性以及降低網(wǎng)絡(luò)維護(hù)成本,本實(shí)施例在選取主設(shè)備之后,如果主設(shè)備宕機(jī),將會(huì)重新通過(guò)協(xié)商機(jī)制自動(dòng)選出另一臺(tái)主設(shè)備,繼續(xù)服務(wù)。比如,在正常的已建立通信階段,如果master當(dāng)機(jī),則整個(gè)網(wǎng)絡(luò)自動(dòng)退回到協(xié)商階段,余下的master候選主設(shè)備,也是使用相同的協(xié)商機(jī)制,以確定新的master。也即本實(shí)施例方法在確定本設(shè)備為從設(shè)備之后,還可以包括:當(dāng)檢測(cè)到當(dāng)前主設(shè)備宕機(jī)時(shí),可以返回執(zhí)行步驟101-105,以重新組網(wǎng)。
本發(fā)明實(shí)施例提供的組網(wǎng)方法可以應(yīng)用在緩存數(shù)據(jù)同步過(guò)程中,在組網(wǎng)之后,設(shè)備集群內(nèi)從設(shè)備將會(huì)向各自的緩存數(shù)據(jù)發(fā)送給主設(shè)備,通過(guò)主設(shè)備轉(zhuǎn)發(fā)給其余的從設(shè)備,以到達(dá)緩存數(shù)據(jù)同步的目的;該組網(wǎng)方法可以提高緩存數(shù)據(jù)同步的效率。比如,本發(fā)明實(shí)施例提供的組網(wǎng)方法可以應(yīng)用在購(gòu)物號(hào)系統(tǒng)中,參考圖4,該購(gòu)物號(hào)系統(tǒng)包括數(shù)據(jù)服務(wù)集群和web服務(wù)集群。該數(shù)據(jù)服務(wù)集群可以采用本發(fā)明實(shí)施例提供的組網(wǎng)方式來(lái)選取主設(shè)備組成網(wǎng)絡(luò),以便進(jìn)行數(shù)據(jù)緩存同步。如圖4所示,當(dāng)web服務(wù)集群內(nèi)web服務(wù)器接收到請(qǐng)求之后,從本地緩存中讀取數(shù)據(jù),當(dāng)從本地緩存讀取數(shù)據(jù)成功時(shí),則web服務(wù)器執(zhí)行前端數(shù)據(jù)處理邏輯,然后,返回相應(yīng)的請(qǐng)求結(jié)果;當(dāng)從本地?cái)?shù)據(jù)緩存讀取數(shù)據(jù)失敗時(shí),web服務(wù)器可以數(shù)據(jù)服務(wù)集群獲取數(shù)據(jù),此時(shí),web服務(wù)器將會(huì)觸發(fā)數(shù)據(jù)服務(wù)器集群內(nèi)的服務(wù)器采用本發(fā)明實(shí)施例提供的組網(wǎng)方法來(lái)實(shí)現(xiàn)組網(wǎng),從而使得數(shù)據(jù)服務(wù)器集群內(nèi)服務(wù)器進(jìn)行緩存數(shù)據(jù)同步,并將同步后的緩存數(shù)據(jù)發(fā)送給相應(yīng)的web服務(wù)器,web服務(wù)器執(zhí)行前端數(shù)據(jù)處理邏輯,然后,返回相應(yīng)的請(qǐng)求結(jié)果。
由上可知,本發(fā)明實(shí)施例通過(guò)設(shè)備間自協(xié)商的方式自動(dòng)選舉出主設(shè)備,以實(shí)現(xiàn)設(shè)備間的組網(wǎng),其無(wú)需在每臺(tái)設(shè)備上進(jìn)行大量復(fù)雜的手動(dòng)配置,因此,可以提高設(shè)備間的組網(wǎng)速度以及效率。另外,本發(fā)明實(shí)施例通過(guò)從設(shè)備自動(dòng)搜尋主設(shè)備,并建立通信,實(shí)現(xiàn)了擴(kuò)容、縮容的自動(dòng)化,使得該方案支持熱插撥擴(kuò)容、縮容(其中,即插即用是指slave的上線與下線均不影響現(xiàn)有組網(wǎng)設(shè)備的運(yùn)行,也不需要有配置變更)。由于該方案無(wú)需在擴(kuò)容或縮容時(shí)重啟服務(wù)重新進(jìn)行設(shè)備配置,提高了擴(kuò)容、縮容速度和效率,降低了擴(kuò)容、縮容對(duì)組網(wǎng)設(shè)備的影響。
此外,本發(fā)明實(shí)施例提供的組網(wǎng)方案還可以減少通信通道的數(shù)量,節(jié)省了通信資源。比如,現(xiàn)有組網(wǎng)方式在n個(gè)設(shè)備組網(wǎng)時(shí),其需要n*(n-1)/2條通信通道;而本發(fā)明實(shí)施例提供的組網(wǎng)方案在n個(gè)設(shè)備組網(wǎng),其僅需要n-1個(gè)通信通道即可以實(shí)現(xiàn)集群內(nèi)任意兩臺(tái)機(jī)器間的通信,實(shí)現(xiàn)通信通道最小化,節(jié)省了通信資源。
實(shí)施例二、
根據(jù)實(shí)施例一所描述的方法,以下將舉例作進(jìn)一步詳細(xì)說(shuō)明。
在本實(shí)施例中,將以設(shè)備間的組網(wǎng)裝置集成在各候選服務(wù)器中為例進(jìn)行說(shuō)明。
參考圖1d所示,設(shè)備集群可以包括候選服務(wù)器1、候選服務(wù)器2、以及候選服務(wù)器3以及從服務(wù)器1、從服務(wù)器2、從服務(wù)器3。該候選服務(wù)器1、候選服務(wù)器2、以及候選服務(wù)器3均集成有本發(fā)明實(shí)施例提供的組網(wǎng)裝置。
在需要組網(wǎng)時(shí),各候選服務(wù)器之間相互發(fā)送主設(shè)備協(xié)商請(qǐng)求,均執(zhí)行相同處理過(guò)程以選舉出主服務(wù)器。以下將從候選服務(wù)器1的角度出發(fā)來(lái)介紹在協(xié)商過(guò)程各候選主設(shè)備執(zhí)行的相同處理過(guò)程。
一方面,候選服務(wù)器1在協(xié)商過(guò)程中需要向其他候選服務(wù)器發(fā)送協(xié)商請(qǐng)求以確定自己是否能作為主設(shè)備;如圖5a所示,候選服務(wù)器1在主設(shè)備協(xié)商過(guò)程的處理流程如下:
400、候選服務(wù)器1獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選服務(wù)器的網(wǎng)絡(luò)地址。
401、候選服務(wù)器1根據(jù)候選列表信息分別向候選服務(wù)器2和候選服務(wù)器3發(fā)送主設(shè)備協(xié)商請(qǐng)求,該請(qǐng)求攜帶候選服務(wù)器1的ip。
402、候選服務(wù)器2和候選服務(wù)器3分別根據(jù)該主設(shè)備協(xié)商請(qǐng)求向候選服務(wù)器1返回相應(yīng)的協(xié)商結(jié)果。
其中,協(xié)商結(jié)果可包括:用于指示是否同意候選服務(wù)器1作為主設(shè)備的指示參數(shù)、或用于指示自己是主設(shè)備或者從設(shè)備的指示參數(shù)。
比如,本實(shí)施例可以通過(guò)不同的參數(shù)值來(lái)指示是否同意候選服務(wù)器1作為主設(shè)備,用于指示是主設(shè)備或者從設(shè)備。如當(dāng)參數(shù)值為0時(shí)表示請(qǐng)求接收方(候選服務(wù)器2或候選服務(wù)器3)同意候選服務(wù)器1作為主設(shè)備,當(dāng)參數(shù)值為1是表示請(qǐng)求接收方(候選服務(wù)器2或候選服務(wù)器3)為主服務(wù)器,當(dāng)參數(shù)值為2時(shí),表示請(qǐng)求接收方(候選服務(wù)器2或候選服務(wù)器3)為從服務(wù)器,當(dāng)參數(shù)值為3時(shí),表示請(qǐng)求接收方(候選服務(wù)器2或候選服務(wù)器3)不同意候選服務(wù)器1作為主設(shè)備。
403、候選服務(wù)器1根據(jù)候選服務(wù)器2和候選服務(wù)器3返回的協(xié)商結(jié)果確定自己是否作為主服務(wù)器,若否,則執(zhí)行步驟404,若是,則執(zhí)行步驟406。
比如,當(dāng)存在參數(shù)值為1的指示參數(shù)時(shí),則候選服務(wù)器1確定自己不為主設(shè)備;當(dāng)不存在參數(shù)值為1和參數(shù)值為2的指示參數(shù)時(shí),候選服務(wù)器1統(tǒng)計(jì)參數(shù)值為0的指示參數(shù)數(shù)量,若等于候選服務(wù)器總數(shù)量3,那么可以確定自己為主服務(wù)器;又比如,當(dāng)不存在參數(shù)值為1,存在參數(shù)值為2的指示參數(shù)時(shí),可以計(jì)參數(shù)值為0的指示參數(shù)數(shù)量a,以及參數(shù)值為2的指示參數(shù)數(shù)量b;若a等于c-b時(shí),則確定自己為主服務(wù)器,該c為候選服務(wù)器的總數(shù)量,這里為3。
404、候選服務(wù)器1確定當(dāng)前是否已存在主服務(wù)器,若是,則執(zhí)行步驟405,若否,則返回執(zhí)行步驟400進(jìn)行重新協(xié)商。
405、候選服務(wù)器1將自己標(biāo)記為從服務(wù)器。
比如,候選服務(wù)器1對(duì)本設(shè)備的狀態(tài)標(biāo)識(shí)進(jìn)行更改,以使得該狀態(tài)標(biāo)識(shí)指示本設(shè)備為從服務(wù)器。
406、候選服務(wù)器1將自己標(biāo)記為主服務(wù)器。
比如,候選服務(wù)器1對(duì)本設(shè)備的狀態(tài)標(biāo)識(shí)進(jìn)行更改,以使得該狀態(tài)標(biāo)識(shí)指示本設(shè)備為主服務(wù)器。
本實(shí)施例中,在候選服務(wù)器1作為主服務(wù)器時(shí),設(shè)備集群內(nèi)的其余服務(wù)器,如候選服務(wù)器2和候選服務(wù)器3、從服務(wù)器2、從服務(wù)器3將會(huì)根據(jù)候選列表信息向設(shè)備集群內(nèi)其余服務(wù)器發(fā)送主設(shè)備詢問(wèn)請(qǐng)求,以搜尋當(dāng)前的主服務(wù)器,然后,主動(dòng)與主服務(wù)器(即候選服務(wù)器1)建立通信通道,以組成網(wǎng)絡(luò)。
在候選服務(wù)器1不作為主服務(wù)器,且已經(jīng)選舉出主服務(wù)器(如候選服務(wù)器3)時(shí),候選服務(wù)器1將會(huì)向設(shè)備集群內(nèi)的其余服務(wù)器發(fā)送主設(shè)備詢問(wèn)請(qǐng)求,以搜尋當(dāng)前的主服務(wù)器,然后,主動(dòng)與主服務(wù)器(即候選服務(wù)器1)建立通信通道,以組成網(wǎng)絡(luò)。
另一方面,候選服務(wù)器1在協(xié)商過(guò)程中需要對(duì)其他候選服務(wù)器發(fā)送的協(xié)商請(qǐng)求作出響應(yīng),以便其他候選服務(wù)器可以選舉出主服務(wù)器。如圖5b,候選服務(wù)器1在主設(shè)備協(xié)商過(guò)程的請(qǐng)求處理流程如下:
501、候選服務(wù)器1分別接收候選服務(wù)器2發(fā)送的主設(shè)備協(xié)商請(qǐng)求,該請(qǐng)求攜帶候選服務(wù)器2的ip。
502、候選服務(wù)器1判斷本設(shè)備當(dāng)前是否為主服務(wù)器,若否,則執(zhí)行步驟503,若是,則執(zhí)行步驟507。
503、候選服務(wù)器1判斷本設(shè)備當(dāng)前是否為從服務(wù)器,若否,則執(zhí)行步驟504,若是,則執(zhí)行步驟508。
504、候選服務(wù)器1判斷本設(shè)備的ip是否比候選服務(wù)器2的ip小,若是,則執(zhí)行步驟505,若否,則執(zhí)行步驟506。
505、候選服務(wù)器1返回用于指示同意候選服務(wù)器2作為主服務(wù)器的第一指示參數(shù)給候選服務(wù)器2。
506、候選服務(wù)器1返回用于指示不同意候選服務(wù)器2作為主服務(wù)器的第一指示參數(shù)給候選服務(wù)器2。
507、候選服務(wù)器1返回用于指示本設(shè)備為主服務(wù)器的第三指示參數(shù)給候選服務(wù)器2。
508、候選服務(wù)器1返回用于指示本設(shè)備為從服務(wù)器的第四指示參數(shù)給候選服務(wù)器2。
其中,第一指示參數(shù)、第二指示參數(shù)、第三指示參數(shù)、第四指示參數(shù)可以為具有不同參數(shù)值的指示參數(shù),如第一指示參數(shù)可以為0、第二指示參數(shù)可以為3、第三指示參數(shù)可以為1、第四指示參數(shù)可以為2。
同理,候選服務(wù)器1對(duì)候選服務(wù)器3發(fā)送的協(xié)商請(qǐng)求的處理過(guò)程,與對(duì)候選服務(wù)器2發(fā)送的協(xié)商請(qǐng)求的處理過(guò)程相同,此處不再贅述。
對(duì)于候選服務(wù)器1來(lái)說(shuō),以上請(qǐng)求處理過(guò)程,以及確定本設(shè)備是否為主設(shè)備的過(guò)程,這兩個(gè)過(guò)程的時(shí)序可以為任意,如這兩個(gè)過(guò)程可以并行執(zhí)行。
雖然,本實(shí)施例是站在候選服務(wù)器1的角度來(lái)說(shuō)明候選主設(shè)備在主設(shè)備協(xié)商中的處理過(guò)程,但是應(yīng)當(dāng)理解,站在其余候選服務(wù)器早主設(shè)備協(xié)商過(guò)程中與候選服務(wù)器1的執(zhí)行過(guò)程是相同或者類似,可以參考上述候選服務(wù)器1的執(zhí)行過(guò)程。
由上可知,本發(fā)明實(shí)施例通過(guò)設(shè)備間自協(xié)商的方式自動(dòng)選舉出主設(shè)備,以實(shí)現(xiàn)設(shè)備間的組網(wǎng),其無(wú)需在每臺(tái)設(shè)備上進(jìn)行大量復(fù)雜的手動(dòng)配置,因此,可以提高設(shè)備間的組網(wǎng)速度以及效率。另外,本發(fā)明實(shí)施例通過(guò)從設(shè)備自動(dòng)搜尋主設(shè)備,并建立通信,實(shí)現(xiàn)了擴(kuò)容、縮容的自動(dòng)化,使得該方案支持熱插撥擴(kuò)容、縮容。由于該方案無(wú)需在擴(kuò)容或縮容時(shí)重啟服務(wù)重新進(jìn)行設(shè)備配置,提高了擴(kuò)容、縮容速度和效率,降低了擴(kuò)容、縮容對(duì)組網(wǎng)設(shè)備的影響。
此外,本發(fā)明實(shí)施例提供的組網(wǎng)方案還可以減少通信通道的數(shù)量,節(jié)省了通信資源。比如,現(xiàn)有組網(wǎng)方式在n個(gè)設(shè)備組網(wǎng)時(shí),其需要n*(n-1)/2條通信通道;而本發(fā)明實(shí)施例提供的組網(wǎng)方案在n個(gè)設(shè)備組網(wǎng),其僅需要n-1個(gè)通信通道即可以實(shí)現(xiàn)集群內(nèi)任意兩臺(tái)機(jī)器間的通信,實(shí)現(xiàn)通信通道最小化,節(jié)省了通信資源。
實(shí)施例三、
為了更好地實(shí)施以上方法,本發(fā)明實(shí)施例還提供設(shè)備間的組網(wǎng)裝置,如圖6a所示,該無(wú)線局域網(wǎng)的連接裝置包括:獲取單元601、發(fā)送單元602、結(jié)果接收單元603、第一確定單元604和通信建立單元605,如下:
(1)獲取單元601;
獲取單元601,用于獲取候選列表信息,該候選列表信息包括設(shè)備集群內(nèi)候選主設(shè)備的網(wǎng)絡(luò)地址。
其中,候選列表信息可以預(yù)先配置,并保存在設(shè)備的存儲(chǔ)單元中,比如,可以預(yù)先在候選主設(shè)備中配置候選列表信息。此時(shí),獲取單元601可以從本地存儲(chǔ)單元中提取候選列表信息。
本實(shí)施例中候選主設(shè)備可用提供主機(jī)服務(wù)的候選設(shè)備,該候選主設(shè)備可以有多個(gè),此時(shí),該候選列表信息可以包括每個(gè)候選主設(shè)備的網(wǎng)絡(luò)地址。實(shí)際應(yīng)用中,該網(wǎng)絡(luò)地址可以為候選主設(shè)備的ip(internetprotocoladdress,互聯(lián)網(wǎng)協(xié)議地址)等。
(2)發(fā)送單元602;
發(fā)送單元602,用于根據(jù)候選列表信息向該設(shè)備集群內(nèi)除本設(shè)備以外的其他候選主設(shè)備發(fā)送第一主設(shè)備協(xié)商請(qǐng)求。
(3)結(jié)果接收單元603;
結(jié)果接收單元603,用于接收該其他候選主設(shè)備根據(jù)該第一主設(shè)備協(xié)商請(qǐng)求返回的協(xié)商結(jié)果。
其中,協(xié)商可以結(jié)果可以包括:用于指示同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息、用于指示不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示信息。
實(shí)際應(yīng)用中,可以采用具體參數(shù)的值來(lái)表示同意或者不同意發(fā)送方作為設(shè)備,也即本實(shí)施例指示信息可以包括用于指示是否同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備的指示參數(shù)。比如,當(dāng)指示參數(shù)的參數(shù)值為0時(shí)表示:同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備;當(dāng)指示參數(shù)的參數(shù)值為3時(shí)表示:不同意請(qǐng)求發(fā)送方設(shè)備作為主設(shè)備。
(4)第一確定單元604;
第一確定單元604,用于根據(jù)其他候選主設(shè)備返回的協(xié)商結(jié)果確定本設(shè)備是否為主設(shè)備。
協(xié)商結(jié)果包括:指示是否同意請(qǐng)求發(fā)送方設(shè)備(即本設(shè)備)作為主設(shè)備的指示參數(shù);該第一確定單元604可以具體用于:獲取指示同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量,當(dāng)數(shù)量大于或等于預(yù)設(shè)閾值時(shí),則確定本設(shè)備為主設(shè)備;當(dāng)數(shù)量小于預(yù)設(shè)閾值時(shí),則確定本設(shè)備不為主設(shè)備,比如可以確定本設(shè)備為從設(shè)備。
該預(yù)設(shè)閾值可以基于候選主設(shè)備的數(shù)量來(lái)設(shè)定,優(yōu)選地,該預(yù)設(shè)閾值可以比候選主設(shè)備的總數(shù)量小一;也即在其他候選主設(shè)備均同意本設(shè)備作為主設(shè)備時(shí),才確定本設(shè)備為主設(shè)備。比如候選主設(shè)備為n個(gè)(n>1,且為正整數(shù)),此時(shí)預(yù)設(shè)閾值可以為n-1。
又比如,在一些情況下,在組網(wǎng)前某個(gè)候選主設(shè)備已經(jīng)確定為主設(shè)備,那么此時(shí),協(xié)商結(jié)果還可以包括:用于指示請(qǐng)求接收方設(shè)備即其他候選主設(shè)備為主設(shè)備的指示信息,指示信息可以包括用于其他候選主設(shè)備為主設(shè)備的指示參數(shù),實(shí)際應(yīng)用中,可以不同的參數(shù)值來(lái)指示其他候選主設(shè)備是否為主設(shè)備。該第一確定單元604,可以具體用于:
當(dāng)協(xié)商結(jié)果包括用于指示其他候選主設(shè)備為主設(shè)備的指示參數(shù)時(shí),確定本設(shè)備不為主設(shè)備;
當(dāng)協(xié)商結(jié)果不包括用于指示其他候選主設(shè)備為主設(shè)備的指示參數(shù)時(shí),獲取指示同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量;
根據(jù)該數(shù)量確定本設(shè)備是否為主設(shè)備。
比如,可以將該數(shù)量與預(yù)設(shè)閾值進(jìn)行比較,大于該預(yù)設(shè)閾值時(shí),確定本設(shè)備為主設(shè)備,否則,確定本設(shè)備不為主設(shè)備。
可選地,在某些情況下,在組網(wǎng)前候選主設(shè)備已經(jīng)確定為從設(shè)備,那么協(xié)商結(jié)果還可以包括:用于指示請(qǐng)求接收方設(shè)備即其他候選主設(shè)備為從設(shè)備的指示信息,如指示參數(shù);實(shí)際應(yīng)用中,可以通過(guò)不同參數(shù)值的指示參數(shù)來(lái)指示其他候選主設(shè)備是否為從設(shè)備;此時(shí),該第一確定單元604,可以具體用于:
根據(jù)用于指示其他候選主設(shè)備為從設(shè)備的指示參數(shù)的數(shù)量和候選主設(shè)備的總數(shù)量設(shè)置預(yù)設(shè)閾值;
將獲取指示同意本設(shè)備作為主設(shè)備的指示參數(shù)的數(shù)量與該預(yù)設(shè)閾值進(jìn)行比較;
當(dāng)大于或者等于預(yù)設(shè)閾值時(shí),則確定本設(shè)備為主設(shè)備;否則,不為主設(shè)備。
(5)通信建立單元605;
通信建立單元605,用于在第一確定單元604確定本設(shè)備為主設(shè)備時(shí),與該設(shè)備集群內(nèi)除本設(shè)備以外的其他設(shè)備建立通信通道,以組成網(wǎng)絡(luò)。
為方便設(shè)備網(wǎng)絡(luò)的擴(kuò)容、縮容;本實(shí)施例中與其他設(shè)備建立通信通道,可以由設(shè)備集群內(nèi)其他設(shè)備主動(dòng)搜尋主設(shè)備,并發(fā)起通信連接,以實(shí)現(xiàn)擴(kuò)容、縮容自動(dòng)化。其中,通信建立單元605,用于:
接收設(shè)備集群內(nèi)其他設(shè)備發(fā)起的主設(shè)備詢問(wèn)請(qǐng)求;
根據(jù)該主設(shè)備詢問(wèn)請(qǐng)求返回用于指示本設(shè)備為主設(shè)備的應(yīng)答信息;
接收該其他設(shè)備根據(jù)該應(yīng)答信息發(fā)送的通信建立請(qǐng)求;
根據(jù)該通信建立請(qǐng)求與該其他候選主設(shè)備建立通信通道。
可選地,參考圖6b,該組網(wǎng)裝置還可以包括第二確定單元606,該第二確定單元606,用于當(dāng)?shù)谝淮_定單元604確定本設(shè)備不為主設(shè)備時(shí),確定當(dāng)前是否已經(jīng)存在主設(shè)備,若是,則確定該本設(shè)備為從設(shè)備。
可選地,參考圖6c,該組網(wǎng)裝置還可以包括:
請(qǐng)求接收單元607,用于接收其他候選主設(shè)備根據(jù)候選列表信息發(fā)送的第二主設(shè)備協(xié)商請(qǐng)求,該第二主設(shè)備協(xié)商請(qǐng)求攜帶其他候選主設(shè)備的網(wǎng)絡(luò)地址;
結(jié)果返回單元608,用于根據(jù)該本設(shè)備的網(wǎng)絡(luò)地址和其他候選主設(shè)備的網(wǎng)絡(luò)地址,向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果。
其中,該結(jié)果返回單元608,可以包括:
比較子單元,用于將本設(shè)備的網(wǎng)絡(luò)地址與其他候選主設(shè)備的網(wǎng)絡(luò)地址進(jìn)行比較,得到比較結(jié)果;
結(jié)果返回子單元,用于根據(jù)該比較結(jié)果向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果。
可選地,參考圖6d,該組網(wǎng)裝置還可以包括:判斷單元609;
該判斷單元609,用于在請(qǐng)求接收單元607接收到第二設(shè)備協(xié)商請(qǐng)求之后,結(jié)果返回單元返回協(xié)商結(jié)果之前,判斷該本設(shè)備當(dāng)前是否為主設(shè)備,若不為主設(shè)備,則判斷本設(shè)備當(dāng)前是否為從設(shè)備;
該結(jié)果返回單元608,用于當(dāng)判斷單元609判斷本設(shè)備不為從設(shè)備時(shí),根據(jù)該本設(shè)備的網(wǎng)絡(luò)地址和其他候選主設(shè)備的網(wǎng)絡(luò)地址,向該其他候選主設(shè)備返回相應(yīng)的協(xié)商結(jié)果。
可選地,該通信建立單元605,還用于當(dāng)確定單元604確定本設(shè)備為從設(shè)備之后,根據(jù)該候選列表信息向該其他候選主設(shè)備發(fā)送主設(shè)備詢問(wèn)請(qǐng)求;接收該其他候選主設(shè)備根據(jù)主設(shè)備詢問(wèn)請(qǐng)求返回的應(yīng)答信息;根據(jù)該應(yīng)答信息確定當(dāng)前所協(xié)商的主設(shè)備,并與該主設(shè)備建立通信通道。
具體實(shí)施時(shí),以上各個(gè)單元可以作為獨(dú)立的實(shí)體來(lái)實(shí)現(xiàn),也可以進(jìn)行任意組合,作為同一或若干個(gè)實(shí)體來(lái)實(shí)現(xiàn),以上各個(gè)單元的具體實(shí)施可參見(jiàn)前面的方法實(shí)施例,在此不再贅述。
該設(shè)備間的組網(wǎng)裝置具體可以集成在服務(wù)器中,比如可以集成提供主機(jī)服務(wù)的候選服務(wù)器中。
由上可知,采用本發(fā)明實(shí)施例提供的組網(wǎng)裝置,可以通過(guò)自協(xié)商的方式自動(dòng)選舉出主設(shè)備,以實(shí)現(xiàn)設(shè)備間的組網(wǎng),其無(wú)需在每臺(tái)設(shè)備上進(jìn)行大量復(fù)雜的手動(dòng)配置,因此,可以提高設(shè)備間的組網(wǎng)速度以及效率。另外,采用本發(fā)明實(shí)施例提供的組網(wǎng)裝置還可以通過(guò)從設(shè)備自動(dòng)搜尋主設(shè)備,并建立通信,實(shí)現(xiàn)了擴(kuò)容、縮容的自動(dòng)化,使得該方案支持熱插撥擴(kuò)容、縮容(其中,即插即用是指slave的上線與下線均不影響現(xiàn)有組網(wǎng)設(shè)備的運(yùn)行,也不需要有配置變更)。由于該方案無(wú)需在擴(kuò)容或縮容時(shí)重啟服務(wù)重新進(jìn)行設(shè)備配置,提高了擴(kuò)容、縮容速度和效率,降低了擴(kuò)容、縮容對(duì)組網(wǎng)設(shè)備的影響。
此外,本發(fā)明實(shí)施例提供的組網(wǎng)方案還可以減少通信通道的數(shù)量,節(jié)省了通信資源。比如,現(xiàn)有組網(wǎng)方式在n個(gè)設(shè)備組網(wǎng)時(shí),其需要n*(n-1)/2條通信通道;而本發(fā)明實(shí)施例提供的組網(wǎng)方案在n個(gè)設(shè)備組網(wǎng),其僅需要n-1個(gè)通信通道即可以實(shí)現(xiàn)集群內(nèi)任意兩臺(tái)機(jī)器間的通信,實(shí)現(xiàn)通信通道最小化,節(jié)省了通信資源。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(rom,readonlymemory)、隨機(jī)存取記憶體(ram,randomaccessmemory)、磁盤(pán)或光盤(pán)等。
以上對(duì)本發(fā)明實(shí)施例所提供的一種設(shè)備間的組網(wǎng)方法、裝置及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。