r,實現(xiàn)在不同ConfigServer之間地址信息的同步,也即,每個ConfigServer都保存了全量的地址信息。
[0102]本申請以下實施例從執(zhí)行主體為第二 RPC框架的服務(wù)提供端的角度描述了本申請地址信息傳輸方法的流程,具體實施可參見上述實施例二的描述,重復(fù)之處不再贅述。
[0103]如圖6所示,為本申請實施例六提供的地址信息傳輸方法流程圖,包括以下步驟:
[0104]S601:第二 RPC框架的服務(wù)提供端確定提供服務(wù)的地址信息;
[0105]S602:所述服務(wù)提供端將所述地址信息注冊到第一 RPC框架的第一地址配置中心和第二 RPC框架的第二地址配置中心;所述第二 RPC框架為將所述第一 RPC框架升級后的RPC框架。
[0106]可選地,所述第一 RPC框架為Dubbo服務(wù)框架,所述第二 RPC框架為第二版本的高性能服務(wù)框架HSF2。
[0107]為了更好地說明上述實施例進行地址信息傳輸?shù)姆椒鞒蹋旅嬉缘谝?RPC框架為Dubbo服務(wù)框架,第二 RPC框架為將Dubbo服務(wù)框架和第一版本的高性能服務(wù)框架HSFl進行融合、升級后的第二版本的高性能服務(wù)框架HSF2為例,對本申請作進一步說明。該實施例中,Dubbo的地址配置中心為Dubbo注冊中心,HSFl和HSF2的地址配置中心為ConfigServer。
[0108]如圖7所示,為本申請實施例七提供的地址信息傳輸方法流程圖,包括:
[0109]S701 =Dubbo服務(wù)提供端將提供服務(wù)的地址信息注冊到與之建立網(wǎng)絡(luò)連接的Dubbo注冊中心,HSFl服務(wù)提供端和從HSFl服務(wù)提供端升級后的HSF2服務(wù)提供端將提供服務(wù)的地址信息注冊到與之建立網(wǎng)絡(luò)連接的ConfigServer,從Dubbo注冊中心升級后的HSF2服務(wù)提供端將提供服務(wù)的地址信息注冊到與之建立網(wǎng)絡(luò)連接的Dubbo注冊中心和ConfigServer0
[0110]S702:Dubbo注冊中心將各服務(wù)提供端注冊的地址信息寫入Mysql數(shù)據(jù)庫中,并將Dubbo服務(wù)提供端注冊的地址信息發(fā)送給與之建立網(wǎng)絡(luò)連接的ConfigServer。
[0111]如圖8所示,為Dubbo注冊中心將接收的各服務(wù)提供端注冊的地址信息寫入Dubbo的Mysql數(shù)據(jù)庫中的示意圖;從圖8可知,所有的Dubbo注冊中心都將Dubbo服務(wù)提供端注冊的地址信息寫入一個Mysql數(shù)據(jù)庫中,這樣,每個Dubbo注冊中心可以周期性與Mysql數(shù)據(jù)庫進行地址信息的同步。
[0112]圖9為Dubbo注冊中心將Dubbo服務(wù)提供端注冊的地址信息同步到ConfigServer中的示意圖。從圖9可知,Dubbo注冊中心可以將接收的服務(wù)提供端的地址信息選擇性同步到ConfigServer中,也即,Dubbo注冊中心只將Dubbo服務(wù)提供端注冊的地址信息同步到ConfigServer中。這里,每當Dubbo注冊中心與一個Dubbo服務(wù)提供端建立網(wǎng)絡(luò)連接時,該Dubbo注冊中心就會從ConfigServer集群中選擇一臺ConfigServer,與之建立網(wǎng)絡(luò)連接,并基于建立的網(wǎng)絡(luò)連接,將Dubbo服務(wù)提供端注冊的地址信息發(fā)送給ConfigServer。Dubbo注冊中心會維持與ConfigServer之間的套接字(Socket)連接池,該連接池是一個映射(map)結(jié)構(gòu),記錄有關(guān)鍵字(key)值與Dubbo服務(wù)提供端的機器地址的對應(yīng)關(guān)系,每個key值對應(yīng)一條網(wǎng)絡(luò)連接。這里的機器地址包括互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址、端口號等。Dubbo注冊中心根據(jù)服務(wù)提供端的機器地址,確定key值,根據(jù)key值確定網(wǎng)絡(luò)連接。如果沒有在Socket連接池中尋找到對應(yīng)的網(wǎng)絡(luò)連接,則創(chuàng)建一個新的網(wǎng)絡(luò)連接,放入Socket連接池。當Dubbo服務(wù)提供端下線或重啟時,會主動斷開與Dubbo注冊中心的網(wǎng)絡(luò)連接。Dubbo注冊中心在接收到斷開網(wǎng)絡(luò)連接的指示消息后,刪除寫入Mysql數(shù)據(jù)庫中的該服務(wù)提供端的地址信息。同時,Dubbo注冊中心尋找與ConfigServer建立的對應(yīng)的網(wǎng)絡(luò)連接,指示ConfigServer刪除通過該網(wǎng)絡(luò)連接同步的地址信息,并斷開與該ConfigServer的網(wǎng)絡(luò)連接。
[0113]圖10為不同ConfigServer之間進行地址信息同步的示意圖。從圖中可知,Dubbo注冊中心在將Dubbo服務(wù)提供端注冊的地址信息同步到與之建立網(wǎng)絡(luò)連接的ConfigServer后,該ConfigServer會基于與其它每個ConfigServer建立的連接,將接收的Dubbo服務(wù)提供端注冊的地址信息同步到其它ConfigServer上。
[0114]根據(jù)上述步驟,Dubbo注冊中心寫入Mysql數(shù)據(jù)庫中的地址信息不僅包括Dubbo服務(wù)提供端的地址信息,還包括從Dubbo服務(wù)提供端升級后的HSF2服務(wù)提供端的地址信息,這樣,Dubbo客戶端不僅可以從Dubbo注冊中心訂閱Dubbo服務(wù)提供端提供服務(wù)的地址信息,還可以訂閱從Dubbo服務(wù)提供端升級后的HSF2服務(wù)提供端提供服務(wù)的地址信息。ConfigServer內(nèi)存中保存的地址信息不僅包括HSFl和HSF2服務(wù)提供端(包括從Dubbo服務(wù)提供端升級后的HSF2服務(wù)提供端和從HSFl服務(wù)提供端升級后的HSF2服務(wù)提供端)的地址信息,還包括Dubbo注冊中心發(fā)送的Dubbo服務(wù)提供端的地址信息,這樣,從Dubbo客戶端升級后的HSF2客戶端不僅可以從ConfigServer訂閱從Dubbo服務(wù)提供端升級后的HSF2服務(wù)提供端提供服務(wù)的地址信息、HSFl服務(wù)提供端提供服務(wù)的地址信息,從HSFl服務(wù)提供端升級后的HSF2服務(wù)提供端的地址信息,還可以訂閱未升級的Dubbo服務(wù)提供端提供服務(wù)的地址信息。如圖11所示,為不同RPC框架下地址信息的注冊和訂閱示意圖。
[0115]S703:Dubbo注冊中心在確定自身需要下線或重啟時,將ConfigServer與自身之間的網(wǎng)絡(luò)連接重定向到其它Dubbo注冊中心。
[0116]S704:Dubbo注冊中心周期性檢測存儲到Mysql數(shù)據(jù)庫中的Dubbo服務(wù)提供端的地址信息與ConfigServer保存的Dubbo服務(wù)提供端的地址信息是否一致;若不一致,則對Mysql數(shù)據(jù)庫中Dubbo服務(wù)提供端的地址信息與ConfigServer保存的Dubbo服務(wù)提供端的地址信息進行信息同步。
[0117]上述步驟S703和步驟S704的實施可參見實施例三和實施例四,重復(fù)之處,不再贅述。
[0118]基于同一發(fā)明構(gòu)思,本申請實施例中還提供了一種與地址信息傳輸方法對應(yīng)的地址信息傳輸裝置,由于該裝置解決問題的原理與上述實施例地址信息傳輸方法相似,因此該裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。
[0119]如圖12所示,為本申請實施例八提供的地址信息傳輸裝置結(jié)構(gòu)示意圖,包括:
[0120]接收模塊121,用于為第一遠程過程調(diào)用協(xié)議RPC框架的第一地址配置中心接收所述第一 RPC框架的服務(wù)提供端注冊的地址信息;
[0121]存儲模塊122,用于存儲所述第一 RPC框架的服務(wù)提供端注冊的地址信息;
[0122]發(fā)送模塊123,用于將所述地址信息發(fā)送給第二 RPC框架的第二地址配置中心;所述第二 RPC框架為將所述第一 RPC框架升級后的RPC框架。
[0123]可選地,所述第一 RPC框架為達博Dubbo服務(wù)框架,所述第二 RPC框架為第二版本的高性能服務(wù)框架HSF2。
[0124]可選地,所述發(fā)送模塊123具體用于:基于建立的所述第一地址配置中心與所述第二地址配置中心之間的網(wǎng)絡(luò)連接,將所述地址信息發(fā)送給第二地址配置中心;
[0125]所述裝置還包括:
[0126]處理模塊124,用于在所述發(fā)送模塊123將所述地址信息發(fā)送給第二地址配置中心之后,在確定第一地址配置中心需要下線或重啟時,將所述第二地址配置中心與所述第一地址配置中心之間的網(wǎng)絡(luò)連接重定向到所述第一 RPC框架的其它地址配置中心。
[0127]可選地,所述接收模塊121,還用于接所述第二 RPC框架的服務(wù)提供端注冊的地址信息;所述存儲模塊122,還用于存儲所述第二 RPC框架的服務(wù)提供端注冊的地址信息。
[0128]可選地,所述發(fā)送模塊123,還用于周期性檢測存儲到所述第一 RPC框架的數(shù)據(jù)庫中的地址信息與所述第二地址配置中心保存的地址信息是否一致;若不一致,則對所述數(shù)據(jù)庫中的地址信息與所述第二地址配置中心保存的地址信息進行信息同步。
[0129]如圖13所示,為本申請實施例九提