一種服務(wù)端位置的獲取方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種服務(wù)端位置的獲取方法和設(shè)備。
【背景技術(shù)】
[0002]在一個分布式系統(tǒng)中,在客戶端上沒有提供服務(wù)端位置的前提下,客戶端能夠準確的獲取服務(wù)端位置,并基于服務(wù)端位置與服務(wù)端建立連接,從而使用服務(wù)端提供的服務(wù)。為了準確獲取服務(wù)端位置,客戶端向DNS(Domain Name System,域名系統(tǒng))服務(wù)器發(fā)送域名解析請求,該域名解析請求中攜帶服務(wù)信息?;诒綝NS服務(wù)器記錄的服務(wù)信息與服務(wù)端位置之間的對應關(guān)系,DNS服務(wù)器在接收到域名解析請求后,查詢服務(wù)信息對應的服務(wù)端位置,并通過域名解析響應將服務(wù)端位置發(fā)送給客戶端,由客戶端獲得服務(wù)端位置。
[0003]由于所有的客戶端均需要到DNS服務(wù)器上獲取服務(wù)端位置,因此,當需要獲取服務(wù)端位置的客戶端數(shù)量較多時,DNS服務(wù)器會收到大量的域名解析請求,并返回大量的攜帶服務(wù)端位置的域名解析響應,加大了 DNS服務(wù)器的處理工作量,整個系統(tǒng)的域名解析效率非常低下。而且,客戶端到DNS服務(wù)器上獲取服務(wù)端位置時,客戶端可能需要很長時間才能獲取到服務(wù)端位置。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種服務(wù)端位置的獲取方法,應用于包括多個節(jié)點設(shè)備的分布式系統(tǒng)中,各節(jié)點設(shè)備均維護位置數(shù)據(jù)庫,所述位置數(shù)據(jù)庫用于記錄服務(wù)信息與服務(wù)端位置之間的對應關(guān)系,所述方法包括:
[0005]節(jié)點設(shè)備在提供第一服務(wù)時,在本節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所述第一服務(wù)的第一服務(wù)信息與所述第一服務(wù)的第一服務(wù)端位置之間的對應關(guān)系,并以廣播方式發(fā)送位置存儲請求消息,所述位置存儲請求消息中攜帶了所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;由收到所述位置存儲請求消息的其它節(jié)點設(shè)備在所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;
[0006]所述節(jié)點設(shè)備在需要使用第二服務(wù)時,利用所述第二服務(wù)的第二服務(wù)信息查詢本節(jié)點設(shè)備的位置數(shù)據(jù)庫,如果所述位置數(shù)據(jù)庫中記錄有所述第二服務(wù)信息對應的第二服務(wù)端位置,則所述節(jié)點設(shè)備從所述位置數(shù)據(jù)庫中獲取所述第二服務(wù)端位置,并利用所述第二服務(wù)端位置與相應的服務(wù)端建立連接。
[0007]所述方法進一步包括:所述節(jié)點設(shè)備在接收到其它節(jié)點設(shè)備以廣播方式發(fā)送的攜帶第二服務(wù)信息與第二服務(wù)端位置之間的對應關(guān)系的位置存儲請求消息時,則所述節(jié)點設(shè)備在本節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所述第二服務(wù)信息與所述第二服務(wù)端位置之間的對應關(guān)系。
[0008]所述方法進一步包括:當所述節(jié)點設(shè)備不在提供第一服務(wù)時,所述節(jié)點設(shè)備從本節(jié)點設(shè)備的位置數(shù)據(jù)庫中刪除所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,并以廣播方式發(fā)送位置刪除請求消息,所述位置刪除請求消息中攜帶了所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;由收到所述位置刪除請求消息的其它節(jié)點設(shè)備從所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中刪除所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系。
[0009]所述方法進一步包括:
[0010]當所述節(jié)點設(shè)備將提供的第一服務(wù)更新為第三服務(wù)時,所述節(jié)點設(shè)備將本節(jié)點設(shè)備的位置數(shù)據(jù)庫中的所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,更新為所述第三服務(wù)的第三服務(wù)信息與所述第三服務(wù)的第三服務(wù)端位置之間的對應關(guān)系,并以廣播方式發(fā)送位置更新請求消息,所述位置更新請求消息中攜帶了更新前的所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,以及更新后的所述第三服務(wù)信息與所述第三服務(wù)端位置之間的對應關(guān)系;由收到所述位置更新請求消息的其它節(jié)點設(shè)備將所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中的所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,更新為所述第三服務(wù)信息與所述第三服務(wù)端位置之間的對應關(guān)系。
[0011]所述方法進一步包括:
[0012]當有新節(jié)點設(shè)備加入到所述分布式系統(tǒng)時,所述節(jié)點設(shè)備以單播方式向所述新節(jié)點設(shè)備發(fā)送位置通知請求消息,所述位置通知請求消息中攜帶了本節(jié)點設(shè)備提供的所有服務(wù)的服務(wù)信息與所述所有服務(wù)的服務(wù)端位置之間的對應關(guān)系,由所述新節(jié)點設(shè)備在所述新節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所有服務(wù)的服務(wù)信息與所述所有服務(wù)的服務(wù)端位置之間的對應關(guān)系。
[0013]所述方法進一步包括:
[0014]當所述節(jié)點設(shè)備從所述分布式系統(tǒng)離開時,所述節(jié)點設(shè)備以廣播方式發(fā)送位置離開請求消息,所述位置離開請求消息中攜帶所述節(jié)點設(shè)備離開的信息,由收到所述位置離開請求消息的其它節(jié)點設(shè)備遍歷所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中的服務(wù)端位置為所述節(jié)點設(shè)備的對應關(guān)系,并從所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中刪除服務(wù)端位置為所述節(jié)點設(shè)備的對應關(guān)系。
[0015]所述節(jié)點設(shè)備利用所述第二服務(wù)的第二服務(wù)信息查詢本節(jié)點設(shè)備的位置數(shù)據(jù)庫之后,所述方法還包括:
[0016]如果所述位置數(shù)據(jù)庫中沒有記錄所述第二服務(wù)信息對應的第二服務(wù)端位置,則所述節(jié)點設(shè)備以廣播方式發(fā)送位置查詢請求消息,所述位置查詢請求消息中攜帶所述第二服務(wù)信息,由收到所述位置查詢請求消息的其它節(jié)點設(shè)備在確定由本其它節(jié)點設(shè)備提供所述第二服務(wù)信息對應的第二服務(wù)時,向所述節(jié)點設(shè)備返回攜帶所述其它節(jié)點設(shè)備的第二服務(wù)端位置的位置查詢響應消息;所述節(jié)點設(shè)備從所述位置查詢響應消息中獲取所述第二服務(wù)端位置,并利用所述第二服務(wù)端位置與相應的服務(wù)端建立連接。
[0017]本發(fā)明實施例提供一種節(jié)點設(shè)備,應用于包括多個節(jié)點設(shè)備的分布式系統(tǒng)中,各節(jié)點設(shè)備均維護位置數(shù)據(jù)庫,所述位置數(shù)據(jù)庫用于記錄服務(wù)信息與服務(wù)端位置之間的對應關(guān)系,所述節(jié)點設(shè)備具體包括:
[0018]記錄模塊,用于在提供第一服務(wù)時,在所述節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄第一服務(wù)的第一服務(wù)信息與第一服務(wù)的第一服務(wù)端位置之間的對應關(guān)系;
[0019]發(fā)送模塊,用于以廣播方式發(fā)送位置存儲請求消息,所述位置存儲請求消息中攜帶了所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;由收到所述位置存儲請求消息的其它節(jié)點設(shè)備在所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;
[0020]查詢模塊,用于在需要使用第二服務(wù)時,確定所述第二服務(wù)的第二服務(wù)信息,并利用所述第二服務(wù)的第二服務(wù)信息查詢所述節(jié)點設(shè)備的位置數(shù)據(jù)庫;
[0021]處理模塊,用于當所述位置數(shù)據(jù)庫中記錄有所述第二服務(wù)信息對應的第二服務(wù)端位置時,則從所述位置數(shù)據(jù)庫中獲取所述第二服務(wù)信息對應的第二服務(wù)端位置,并利用所述第二服務(wù)端位置與相應的服務(wù)端建立連接。
[0022]所述記錄模塊,還用于在接收到其它節(jié)點設(shè)備以廣播方式發(fā)送的攜帶第二服務(wù)信息與第二服務(wù)端位置之間的對應關(guān)系的位置存儲請求消息時,則在所述節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所述第二服務(wù)信息與所述第二服務(wù)端位置之間的對應關(guān)系。
[0023]所述記錄模塊,還用于當所述節(jié)點設(shè)備不在提供第一服務(wù)時,從位置數(shù)據(jù)庫中刪除所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;
[0024]所述發(fā)送模塊,還用于以廣播方式發(fā)送位置刪除請求消息,所述位置刪除請求消息中攜帶了所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系;由收到所述位置刪除請求消息的其它節(jié)點設(shè)備從所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中刪除所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系。
[0025]所述記錄模塊,還用于當所述節(jié)點設(shè)備將提供的第一服務(wù)更新為第三服務(wù)時,將所述節(jié)點設(shè)備的位置數(shù)據(jù)庫中的所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,更新為所述第三服務(wù)的第三服務(wù)信息與所述第三服務(wù)的第三服務(wù)端位置之間的對應關(guān)系;
[0026]所述發(fā)送模塊,還用于以廣播方式發(fā)送位置更新請求消息,所述位置更新請求消息中攜帶了更新前的所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,以及更新后的所述第三服務(wù)信息與所述第三服務(wù)端位置之間的對應關(guān)系;由收到所述位置更新請求消息的其它節(jié)點設(shè)備將所述其它節(jié)點設(shè)備的位置數(shù)據(jù)庫中的所述第一服務(wù)信息與所述第一服務(wù)端位置之間的對應關(guān)系,更新為所述第三服務(wù)信息與所述第三服務(wù)端位置之間的對應關(guān)系。
[0027]所述發(fā)送模塊,還用于當有新節(jié)點設(shè)備加入到所述分布式系統(tǒng)時,以單播方式向所述新節(jié)點設(shè)備發(fā)送位置通知請求消息,所述位置通知請求消息中攜帶了所述節(jié)點設(shè)備提供的所有服務(wù)的服務(wù)信息與所述所有服務(wù)的服務(wù)端位置之間的對應關(guān)系,由所述新節(jié)點設(shè)備在所述新節(jié)點設(shè)備的位置數(shù)據(jù)庫中記錄所有服務(wù)的服務(wù)信息與所述所有服務(wù)的服務(wù)端位置之間的對應關(guān)系。
[0028]所述發(fā)送模塊,還用于當所述節(jié)點設(shè)備從所述分布式系統(tǒng)離開時,以廣