本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)處理技術(shù)領(lǐng)域,具體地說,涉及一種分布式服務(wù)尋址方法與系統(tǒng)。
背景技術(shù):
在分布式系統(tǒng)中,應(yīng)用服務(wù)器多呈現(xiàn)異地、多機房部署,在應(yīng)用的相互通訊中,主要采用遠(yuǎn)程方法實現(xiàn)。目前,各大互聯(lián)網(wǎng)公司通過服務(wù)治理來解決分布式服務(wù)的注冊與發(fā)現(xiàn)。具體而言,服務(wù)提供者將服務(wù)注冊至注冊中心,服務(wù)消費者從注冊中心訂閱服務(wù),從服務(wù)提供者集合中隨機或順序選擇服務(wù)進行遠(yuǎn)程調(diào)用。當(dāng)服務(wù)器部署在不同的網(wǎng)絡(luò)或子網(wǎng)時,系統(tǒng)間跨網(wǎng)段,需要經(jīng)過路由才能進行遠(yuǎn)程調(diào)用,從而增加了調(diào)用量,增加了網(wǎng)絡(luò)擁塞,使遠(yuǎn)程調(diào)用速度變慢。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的不足,提供一種分布式服務(wù)尋址方法與系統(tǒng),減少網(wǎng)絡(luò)擁塞,加快遠(yuǎn)程調(diào)用速度。
為解決上述技術(shù)問題,根據(jù)本發(fā)明的一個方面,本發(fā)明提供了一種分布式服務(wù)尋址方法,包括以下步驟:
服務(wù)提供者向注冊中心注冊服務(wù),并提供服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識;
服務(wù)消費者向所述注冊中心訂閱服務(wù),并提供服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識;
其中,還包括:
對比服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和所述服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識,確定出與所述服務(wù)消費者所在網(wǎng)絡(luò)相同的服務(wù),并將其提供的服 務(wù)標(biāo)識為同網(wǎng)段服務(wù);
為所述服務(wù)消費者提供所述同網(wǎng)段服務(wù)。
優(yōu)選地,所述網(wǎng)絡(luò)標(biāo)識包括ip地址和/或子網(wǎng)掩碼。
優(yōu)選地,在對比服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和所述服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識時,將與服務(wù)消費者所在網(wǎng)絡(luò)相同的服務(wù)劃分為同網(wǎng)段服務(wù)子集,將與服務(wù)消費者所在網(wǎng)絡(luò)不同的服務(wù)劃分為異網(wǎng)段服務(wù)子集。
優(yōu)選地,為所述服務(wù)消費者提供所述同網(wǎng)段服務(wù)之前,查詢所述同網(wǎng)段服務(wù)子集是否為空,如果所述同網(wǎng)段服務(wù)子集不為空,向所述服務(wù)消費者提供所述同網(wǎng)段服務(wù)子集中的服務(wù);如果所述同網(wǎng)段服務(wù)子集為空,向所述服務(wù)消費者提供所述異網(wǎng)段服務(wù)子集中的服務(wù)。
為解決上述技術(shù)問題,根據(jù)本發(fā)明的另一個方面,本發(fā)明還提供了一種分布式服務(wù)尋址系統(tǒng),包括:服務(wù)提供模塊、服務(wù)消費模塊和注冊中心,所述服務(wù)提供模塊用于向所述注冊中心注冊服務(wù),包括服務(wù)的網(wǎng)絡(luò)標(biāo)識;所述服務(wù)消費模塊用于從所述注冊中心獲取所需要的服務(wù);其中,所述注冊中心包括同網(wǎng)段服務(wù)提供模塊,用于根據(jù)服務(wù)消費模塊的服務(wù)請求,向其提供同網(wǎng)段服務(wù)。
優(yōu)選地,所述網(wǎng)段服務(wù)提供模塊包括:
網(wǎng)絡(luò)標(biāo)識獲取單元,用于獲取服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和請求服務(wù)的服務(wù)消費模塊所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識;
對比單元,用于對比服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和請求服務(wù)的服務(wù)消費模塊所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識是否相同;
服務(wù)子集單元,用于將與請求服務(wù)的服務(wù)消費模塊所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識相同的服務(wù)劃分為同網(wǎng)段服務(wù)子集,將與請求服務(wù)的服務(wù)消費模塊所在網(wǎng)絡(luò)不同的服務(wù)劃分為異網(wǎng)段服務(wù)子集;和
服務(wù)調(diào)用單元,用于根據(jù)對比單元的對比結(jié)果,為所述服務(wù)消費模塊提供同網(wǎng)段服務(wù)子集或異網(wǎng)段服務(wù)子集中的服務(wù)的調(diào)用。
本發(fā)明在向服務(wù)消費者提供服務(wù)的遠(yuǎn)程調(diào)用時,在存在服務(wù)提供者與服務(wù)消費者處于同一網(wǎng)段或子網(wǎng)的服務(wù)器的情況時,將遠(yuǎn)程服務(wù)調(diào)用尋址為本網(wǎng)段或子網(wǎng)調(diào)用,從而減少了網(wǎng)絡(luò)擁塞,加快了遠(yuǎn)程調(diào)用速度。
附圖說明
通過參照以下附圖對本發(fā)明實施例的描述,本發(fā)明的上述以及其它目的、特征和優(yōu)點將更為清楚,在附圖中:
圖1為本發(fā)明所述分布式服務(wù)尋址方法的流程示意圖;
圖2為本發(fā)明所述分布式服務(wù)尋址系統(tǒng)的結(jié)構(gòu)原理圖;
圖3為本發(fā)明注冊中心中的網(wǎng)段服務(wù)提供模塊的結(jié)構(gòu)原理圖;
圖4為本發(fā)明所述分布式服務(wù)尋址方法實施例的流程示意圖;和
圖5為本發(fā)明遠(yuǎn)程服務(wù)調(diào)用實施例的流程示意圖。
具體實施方式
以下基于實施例對本發(fā)明進行描述,但是本發(fā)明并不僅僅限于這些實施例。在下文對本發(fā)明的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細(xì)節(jié)部分的描述也可以完全理解本發(fā)明。為了避免混淆本發(fā)明的實質(zhì),公知的方法、過程、流程沒有詳細(xì)敘述。另外附圖不一定是按比例繪制的。
附圖中的流程圖、框圖圖示了本發(fā)明實施例的系統(tǒng)、方法、裝置的可能的體系框架、功能和操作,流程圖和框圖上的方框可以代表一個模塊、程序段或僅僅是一段代碼,所述模塊、程序段和代碼都是用來實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,所述實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令可以重新組合,從而生成新的模塊和程序段。因此附圖的方框以及方框順序只是用來更好的圖示實施例的過程和步驟,而不應(yīng)以此作為對發(fā)明本身的限制。
如圖1所示,為本發(fā)明所述分布式服務(wù)尋址方法的流程示意圖。
步驟s1,服務(wù)提供者向注冊中心注冊服務(wù),注冊時包括服務(wù)名稱和服務(wù)綁定ip、端口及子網(wǎng)掩碼等網(wǎng)絡(luò)標(biāo)識。
步驟s2,服務(wù)消費者向所述注冊中心訂閱服務(wù),并向注冊中心提供服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識。
步驟s3,對比服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和所述服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識,確定出與所述服務(wù)消費者所在網(wǎng)絡(luò)相同的服務(wù),并將其標(biāo) 識為同網(wǎng)段服務(wù);
步驟s4,為所述服務(wù)消費者提供所述同網(wǎng)段服務(wù)。
如圖2所示,為本發(fā)明所述分布式服務(wù)尋址系統(tǒng)的結(jié)構(gòu)原理圖。本發(fā)明提供的分布式服務(wù)尋址系統(tǒng)包括服務(wù)提供模塊1、服務(wù)消費模塊2和注冊中心3。其中,所述服務(wù)提供模塊1用于向所述注冊中心3注冊服務(wù),注冊的信息包括服務(wù)名稱和提供服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識,如服務(wù)綁定ip、端口及子網(wǎng)掩碼等;所述服務(wù)消費模塊2向所述注冊中心訂閱其所需的服務(wù),從而可以調(diào)用相應(yīng)的服務(wù)。所述注冊中心接收所述服務(wù)提供模塊1的注冊信息,并為訂閱服務(wù)的服務(wù)消費模塊2提供相應(yīng)的服務(wù)。其中,注冊中心包括同網(wǎng)段服務(wù)提供模塊31,用于根據(jù)服務(wù)消費模塊的服務(wù)請求,向其提供同網(wǎng)段服務(wù)。
其中,如圖3所示,所述網(wǎng)段服務(wù)提供模塊31包括:網(wǎng)絡(luò)標(biāo)識獲取單元310、對比單元311、服務(wù)子集單元312和服務(wù)調(diào)用單元313,其中,當(dāng)服務(wù)消費模塊訂閱服務(wù)后,注冊中心查詢已注冊的服務(wù),得到與服務(wù)消費模塊訂閱的服務(wù)相匹配的服務(wù)提供者,通過所述網(wǎng)絡(luò)標(biāo)識獲取單元310獲取這些服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識,同時也獲得服務(wù)消費模塊所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識。對比單元311對比服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和請求服務(wù)的服務(wù)消費模塊所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識是否相同,通過服務(wù)子集單元312,將與請求服務(wù)的服務(wù)消費模塊所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識相同的服務(wù)劃分為同網(wǎng)段服務(wù)子集,將與請求服務(wù)的服務(wù)消費者所在網(wǎng)絡(luò)不同的服務(wù)劃分為異網(wǎng)段服務(wù)子集。服務(wù)調(diào)用單元313根據(jù)對比單元311的對比結(jié)果,為所述服務(wù)消費模塊2調(diào)用同網(wǎng)段服務(wù)子集或異網(wǎng)段服務(wù)子集中的服務(wù)。
如圖4所示,為本發(fā)明一實施例的具體流程圖。
步驟s1a,服務(wù)提供者通過向注冊中心注冊來發(fā)布其可以提供的服務(wù),注冊時,服務(wù)的名稱,服務(wù)器的ip地址、端口及子網(wǎng)掩碼等網(wǎng)絡(luò)標(biāo)識同時注冊到注冊中心。
步驟s2a,服務(wù)消費者向所述注冊中心訂閱服務(wù)。具體地,向注冊中心提供所需服務(wù)的名稱及服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識。
步驟s3a,注冊中心查詢注冊的服務(wù),確定出所述服務(wù)消費者訂閱 的服務(wù),如可以得到服務(wù)提供者的列表。
步驟s4a,注冊中心逐一對比服務(wù)所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識和所述服務(wù)消費者所在網(wǎng)絡(luò)的網(wǎng)絡(luò)標(biāo)識。
步驟s5a,判斷當(dāng)前比較的服務(wù)所在的網(wǎng)絡(luò)是否有與所述服務(wù)消費者所在網(wǎng)絡(luò)相同,如果相同,在步驟s6a,將所述服務(wù)劃分到同網(wǎng)段服務(wù)子集,例如標(biāo)記為s子集;如果不相同,在步驟s7a,將所述服務(wù)劃分到異網(wǎng)段服務(wù)子集,例如標(biāo)記為n子集。
步驟s8a,注冊中心查詢同網(wǎng)段服務(wù)子集,即s子集。
步驟s9a,判斷所述同網(wǎng)段服務(wù)子集是否為空,如果不為空,則說明存在與服務(wù)消費者同網(wǎng)的服務(wù),在步驟s10a,將所述同網(wǎng)段服務(wù)子集中的服務(wù)提供給所述服務(wù)消費者。如果為空,在步驟s11a,將所述異網(wǎng)段服務(wù)子集中的服務(wù)提供給所述服務(wù)消費者。
參見圖5,圖5為本發(fā)明遠(yuǎn)程服務(wù)調(diào)用實施例的流程示意圖。服務(wù)提供者a處于a網(wǎng)段,服務(wù)提供者b處于b網(wǎng)段,服務(wù)提供者c處于c網(wǎng)段,通過向注冊中心注冊來發(fā)布其提供的服務(wù),服務(wù)消費者a處于a網(wǎng)段,服務(wù)消費者b處于b網(wǎng)段,服務(wù)消費者c處于c網(wǎng)段,通過向注冊中心訂閱服務(wù)來獲取遠(yuǎn)程服務(wù)的調(diào)用。通過本發(fā)明所述的服務(wù)尋址方法,分別處于a、b、c網(wǎng)段的三個服務(wù)消費者分別調(diào)用處于相同網(wǎng)段的服務(wù)提供者提供的服務(wù)。即當(dāng)存在服務(wù)提供者與服務(wù)消息者處于同一網(wǎng)段或子網(wǎng)的服務(wù)器時,將遠(yuǎn)程服務(wù)調(diào)用尋址為本網(wǎng)段或子網(wǎng)調(diào)用。因而本發(fā)明減少了網(wǎng)絡(luò)擁塞,加快了遠(yuǎn)程調(diào)用速度。
以上所述僅為本發(fā)明的優(yōu)選實施例,并不用于限制本發(fā)明,對于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。