本發(fā)明涉及通信領(lǐng)域,特別是涉及一種服務(wù)地址的讀取裝置、系統(tǒng)和方法。
背景技術(shù):
在互聯(lián)網(wǎng)技術(shù)中,可以通過(guò)各種基于HTTP協(xié)議的接口服務(wù)來(lái)支持各種功能,也可以手動(dòng)開(kāi)啟或關(guān)閉某些服務(wù)以達(dá)到相應(yīng)的功能。
通常一個(gè)服務(wù)提供了接口后,客戶(hù)端在通過(guò)接口調(diào)用該服務(wù)之前,需要先獲取服務(wù)的服務(wù)地址(IP地址和端口號(hào)等),然后才能使用該服務(wù)。例如:客戶(hù)端調(diào)用獲取布局的服務(wù)時(shí),調(diào)用請(qǐng)求的形式如下:www.xxx.com/getlayout,其中,實(shí)際請(qǐng)求的是服務(wù)地址http://192.168.1.2:8080/getlayout,在前述請(qǐng)求中,www.xxx.com是域名,getlayout是服務(wù)名稱(chēng),服務(wù)器需要根據(jù)服務(wù)名稱(chēng)查找對(duì)應(yīng)的服務(wù)地址,因此需要通過(guò)查找服務(wù)注冊(cè)表將服務(wù)名稱(chēng)映射到服務(wù)地址上。有些情況下,服務(wù)地址是動(dòng)態(tài)分配的,且服務(wù)本身也有生命周期。因此在調(diào)用服務(wù)前需要比較精準(zhǔn)的方式來(lái)保證獲取服務(wù)地址的速度和準(zhǔn)確度。但現(xiàn)有技術(shù)有,讀取服務(wù)地址的速度和準(zhǔn)確度并不高。
針對(duì)現(xiàn)有技術(shù)中無(wú)法快速準(zhǔn)確獲取服務(wù)地址的問(wèn)題,目前業(yè)界沒(méi)有理想的解決方式。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于提供一種服務(wù)地址的讀取方法及裝置,旨在解決現(xiàn)有技術(shù)中無(wú)法快速準(zhǔn)確獲取服務(wù)地址的問(wèn)題。
第一方面,本發(fā)明提供了一種服務(wù)地址的讀取裝置,該裝置包括:
網(wǎng)關(guān),用于接收來(lái)自客戶(hù)端的調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng);服務(wù)注冊(cè)模塊,用于實(shí)時(shí)更新各服務(wù)的服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址;服務(wù)信息庫(kù),用于存儲(chǔ)服務(wù)名稱(chēng)和服務(wù)地址;服務(wù)加載模塊,用于按預(yù)設(shè)時(shí)間間隔將服務(wù)信息庫(kù)中的服務(wù)名稱(chēng)和服務(wù)地址加載至緩存中;緩存,用于提供服務(wù)名稱(chēng)供網(wǎng)關(guān)查找,若從服務(wù)名稱(chēng)中查找到目標(biāo)服務(wù)名稱(chēng),則將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端。
第二方面,本發(fā)明提供了一種服務(wù)地址的讀取系統(tǒng),該系統(tǒng)包括:
客戶(hù)端,用于發(fā)送調(diào)用目標(biāo)服務(wù)的請(qǐng)求,所述請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng);以及本發(fā)明提供的任一種服務(wù)地址的讀取裝置。
第三方面,本發(fā)明提供了一種服務(wù)地址的讀取方法,該方法包括:
接收來(lái)自客戶(hù)端的調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng);實(shí)時(shí)更新服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址;按預(yù)設(shè)時(shí)間間隔加載服務(wù)名稱(chēng)和服務(wù)地址;查找目標(biāo)服務(wù)名稱(chēng),若查找到目標(biāo)服務(wù)名稱(chēng),則將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端;若沒(méi)有查找到目標(biāo)服務(wù)名稱(chēng),則加載目標(biāo)服務(wù)名稱(chēng),并將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的目標(biāo)服務(wù)地址發(fā)送至客戶(hù)端。
第四方面,本發(fā)明提供了一種服務(wù)地址的讀取方法,該方法包括:
客戶(hù)端發(fā)送調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng);網(wǎng)關(guān)接收來(lái)自客戶(hù)端的請(qǐng)求;服務(wù)信息庫(kù)進(jìn)行實(shí)時(shí)更新服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址;服務(wù)加載模塊按預(yù)設(shè)時(shí)間間隔將服務(wù)信息庫(kù)中的服務(wù)名稱(chēng)和服務(wù)地址加載至緩存中;緩存提供服務(wù)名稱(chēng)供網(wǎng)關(guān)查找,若從服務(wù)名稱(chēng)中查找到目標(biāo)服務(wù)名稱(chēng),則將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端;若沒(méi)有查找到目標(biāo)服務(wù)名稱(chēng),則服務(wù)加載模塊在緩存中加載目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址之后,緩存將目標(biāo)服務(wù)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端。
本發(fā)明實(shí)時(shí)更新服務(wù)的服務(wù)名稱(chēng)和服務(wù)地址,保證了服務(wù)地址地準(zhǔn)確性,并將服務(wù)名稱(chēng)和服務(wù)地址加載在緩存中,加快了服務(wù)地址的讀取速度,從而達(dá)到了快速準(zhǔn)確獲取服務(wù)地址的效果。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的服務(wù)地址的讀取系統(tǒng)的示意圖;
圖2是本發(fā)明實(shí)施例提供的服務(wù)地址的讀取方法的流程圖;
圖3是本發(fā)明優(yōu)選實(shí)施例提供的服務(wù)地址的讀取方法的流程圖。
具體實(shí)施方式
為了使本發(fā)明要解決的技術(shù)問(wèn)題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是本發(fā)明實(shí)施例提供的服務(wù)地址的讀取系統(tǒng)的示意圖,如圖1所示,該系統(tǒng)包括客戶(hù)端110、服務(wù)地址的讀取裝置120和服務(wù)130。
客戶(hù)端110用于發(fā)送調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng)。
客戶(hù)端110可以請(qǐng)求調(diào)用服務(wù),客戶(hù)端110可以是Android系統(tǒng)、Web系統(tǒng)或其他系統(tǒng)。
服務(wù)地址的讀取裝置120用于提供目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址供客戶(hù)端讀取。
服務(wù)130可以是一個(gè)或多個(gè),可以對(duì)外提供服務(wù)地址,客戶(hù)端可通過(guò)讀取服務(wù)地址,進(jìn)而獲取服務(wù)的數(shù)據(jù)。
進(jìn)一步地,圖1示出了服務(wù)地址的讀取裝置的具體結(jié)果,如圖1所示,服務(wù)地址的讀取裝置120中進(jìn)一步包括網(wǎng)關(guān)121、緩存122、服務(wù)加載模塊123、服務(wù)信息庫(kù)124、服務(wù)注冊(cè)模塊125。優(yōu)選地,該系統(tǒng)還可以包括服務(wù)監(jiān)控模塊126。
網(wǎng)關(guān)121用于接收來(lái)自客戶(hù)端的調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng)。
網(wǎng)關(guān)121用于接收調(diào)用服務(wù)的請(qǐng)求,根據(jù)請(qǐng)求的服務(wù)名稱(chēng)從緩存122中找到對(duì)應(yīng)的服務(wù)地址,并將請(qǐng)求重定向到該服務(wù)地址上。
優(yōu)選地,網(wǎng)關(guān)121可以為OpenResty平臺(tái),其內(nèi)部集成了大量精良的lua庫(kù)、第三方模塊以及大多數(shù)的依賴(lài)項(xiàng)。用于方便地搭建能夠處理超高并發(fā)、擴(kuò)展性極高的動(dòng)態(tài)Web應(yīng)用、Web服務(wù)和動(dòng)態(tài)網(wǎng)關(guān)。OpenResty充分利用了Nginx的非阻塞IO模型,能對(duì)客戶(hù)端發(fā)起的服務(wù)請(qǐng)求進(jìn)行高性能響應(yīng)。獲取服務(wù)地址的功能可以使用Lua腳本編寫(xiě),該腳本直接運(yùn)行在Nginx服務(wù)內(nèi)部,從而提高了執(zhí)行效率。
具體地,關(guān)于OpenResty的編譯:本發(fā)明實(shí)施例中OpenResty選用的版本為openresty-1.9.7.3.tar.gz,依賴(lài)的組件有pcre-8.35、openssl-1.0.2j、zlib-1.2.8
配置nginx.conf的方式是在配置文件中增加:
lua_package_path"/usr/local/openresty/lualib/?.lua;;";
在location模塊中增加:
content_by_lua_file conf/lua/handleService.lua;
其中,handleService.lua為編寫(xiě)的lua腳本。
lua腳本連接緩存122,然后根據(jù)服務(wù)名稱(chēng)模糊查找以該服務(wù)名稱(chēng)開(kāi)頭的key對(duì)應(yīng)的value。如果沒(méi)有找到,則調(diào)用服務(wù)加載模塊123的接口加載該服務(wù)的服務(wù)地址到緩存122中。
緩存122用于提供服務(wù)名稱(chēng)供網(wǎng)關(guān)查找,若從服務(wù)名稱(chēng)中查找到目標(biāo)服務(wù)名稱(chēng),則將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端。
為了保證獲取服務(wù)地址的效率,服務(wù)地址都是存放在緩存122中,直接從緩存122里獲取服務(wù)地址的方式不但節(jié)省了時(shí)間,而且提高了響應(yīng)速度,同時(shí)也節(jié)省了硬件資源。
緩存122可以使用Redis,Redis是一個(gè)key-value存儲(chǔ)系統(tǒng),和Memcached類(lèi)似,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。本發(fā)明實(shí)施例中使用Redis作為緩存,存儲(chǔ)服務(wù)名稱(chēng)和服務(wù)地址,其中key的拼裝規(guī)則為服務(wù)的_ip_端口。
例如:服務(wù)的名稱(chēng)為getlayout,該服務(wù)對(duì)應(yīng)多個(gè)網(wǎng)絡(luò)地址(192.168.1.1和192.168.1.2),那么保存在Redis中的key-value分別是:
key為getlayout_19216811_8080,value為192.168.1.1:8080
key為getlayout_19216812_8080,value為192.168.1.2:8080
在查詢(xún)服務(wù)名稱(chēng)getlayout的網(wǎng)絡(luò)地址時(shí),可以通過(guò)模糊查詢(xún)以getlayout開(kāi)頭的key的value值時(shí)找到了192.168.1.1:8080和192.168.1.2:8080。
服務(wù)加載模塊123用于按預(yù)設(shè)時(shí)間間隔將服務(wù)信息庫(kù)中的服務(wù)名稱(chēng)和服務(wù)地址加載至緩存中。
加載的策略可以是從服務(wù)信息庫(kù)124中循環(huán)讀取服務(wù)名稱(chēng)及對(duì)應(yīng)的服務(wù)地址,然后拼裝key,并根據(jù)key精確查找對(duì)應(yīng)的value,如果value和服務(wù)信息庫(kù)中的服務(wù)地址不一致,則將value更新為服務(wù)信息庫(kù)中的網(wǎng)絡(luò)地址;如果value不存在,則將服務(wù)名稱(chēng)和服務(wù)地址加載到緩存中,key和value的格式與緩存中相同。
服務(wù)加載模塊123可以定時(shí)將服務(wù)信息庫(kù)124中的服務(wù)地址同步加載到緩存123中。該模塊有兩個(gè)作用:
一方面,服務(wù)加載模塊123可以定時(shí)將服務(wù)信息庫(kù)124中各個(gè)服務(wù)地址同步加載到緩存122中,加載的策略是從服務(wù)信息庫(kù)124中循環(huán)讀取服務(wù)的名稱(chēng)及對(duì)應(yīng)的服務(wù)地址,然后拼裝key并根據(jù)key精確查找對(duì)應(yīng)的value,如果value和服務(wù)信息庫(kù)124中的服務(wù)地址不一致,則將value更新為服務(wù)信息庫(kù)124中的網(wǎng)絡(luò)地址;如果value不存在,則將服務(wù)名稱(chēng)和網(wǎng)絡(luò)地址加載到緩存122中,key和value的規(guī)則參考緩存122中的規(guī)則。
另一方面,服務(wù)加載模塊123還提供了服務(wù)加載接口供網(wǎng)關(guān)121調(diào)用,當(dāng)網(wǎng)關(guān)121在緩存122中沒(méi)有找到服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址時(shí),會(huì)主動(dòng)調(diào)用以上接口。該接口的功能是主動(dòng)將指定的服務(wù)名稱(chēng)及其服務(wù)地址加載到緩存122中。以上策略保證了緩存122中的數(shù)據(jù)與服務(wù)信息庫(kù)中的數(shù)據(jù)是一致的。
服務(wù)信息庫(kù)124用于存儲(chǔ)服務(wù)名稱(chēng)和服務(wù)地址。
服務(wù)信息庫(kù)124中的服務(wù)注冊(cè)表可以存儲(chǔ)服務(wù)名稱(chēng)、服務(wù)地址以及服務(wù)名稱(chēng)其網(wǎng)絡(luò)地址的對(duì)應(yīng)關(guān)系。
服務(wù)信息庫(kù)124采用公有云的關(guān)系數(shù)據(jù)庫(kù)Mysql,從而保證了數(shù)據(jù)的安全。
優(yōu)選地,服務(wù)信息庫(kù)124在接收到服務(wù)名稱(chēng)和服務(wù)地址后,實(shí)時(shí)地進(jìn)行保存,服務(wù)在啟動(dòng)完成后主動(dòng)提供服務(wù)名稱(chēng)和服務(wù)地址。
服務(wù)注冊(cè)模塊125用于實(shí)時(shí)更新各服務(wù)的服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址。
服務(wù)注冊(cè)模塊125服務(wù)啟動(dòng)完成后主動(dòng)將服務(wù)的服務(wù)名稱(chēng)及網(wǎng)絡(luò)地址發(fā)送給服務(wù)注冊(cè)模塊,服務(wù)注冊(cè)模板負(fù)責(zé)將上述信息保存到服務(wù)信息庫(kù)中。
服務(wù)注冊(cè)模塊125對(duì)外提供了服務(wù)注冊(cè)的接口,該接口的作用是將傳遞過(guò)來(lái)的服務(wù)名稱(chēng)及對(duì)應(yīng)的服務(wù)地址保存到服務(wù)信息庫(kù)124中。服務(wù)啟動(dòng)完成后會(huì)調(diào)用以上接口,如果服務(wù)信息庫(kù)124中已經(jīng)存在對(duì)應(yīng)的服務(wù)地址,則會(huì)將該服務(wù)地址替換成最新的服務(wù)地址;如果服務(wù)信息庫(kù)124中沒(méi)有對(duì)應(yīng)的服務(wù)地址,則插入一條新的服務(wù)地址。該模塊對(duì)外還提供了服務(wù)注冊(cè)信息刪除接口,供服務(wù)監(jiān)控模塊126調(diào)用。
優(yōu)選地,該裝置還包括服務(wù)監(jiān)控模塊126,服務(wù)監(jiān)控模塊126用于通過(guò)服務(wù)地址讀取服務(wù)的監(jiān)控?cái)?shù)據(jù);若無(wú)法獲取監(jiān)控?cái)?shù)據(jù)或監(jiān)控?cái)?shù)據(jù)不正常,則刪除該服務(wù)在服務(wù)信息庫(kù)中的服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址。
服務(wù)監(jiān)控模塊126可以定時(shí)遍歷服務(wù)信息庫(kù)124中各個(gè)服務(wù)的健康狀況,如果發(fā)現(xiàn)不健康的服務(wù),在及時(shí)更新服務(wù)信息庫(kù)并通知服務(wù)加載模塊123同步加載最新的服務(wù)地址到緩存122中。
具體地,該模塊負(fù)責(zé)監(jiān)控服務(wù)的健康狀況,監(jiān)控策略是采用心跳機(jī)制,即每隔預(yù)設(shè)時(shí)間間隔,就查看各個(gè)服務(wù)的健康狀況,預(yù)設(shè)時(shí)間間隔可以通過(guò)瀏覽器配置。
各服務(wù)可以提供監(jiān)控報(bào)告接口供服務(wù)監(jiān)控模塊調(diào)用,例如:某個(gè)服務(wù)的網(wǎng)絡(luò)地址為192.168.1.1端口是8080。則服務(wù)監(jiān)控模塊126可以調(diào)用http://192.168.1.1:8080/gethealthy,如果返回監(jiān)控?cái)?shù)據(jù)為ok,則說(shuō)明服務(wù)健康狀況良好;如果返回監(jiān)控?cái)?shù)據(jù)為no,或者不返回說(shuō)明服務(wù)不健康。
服務(wù)監(jiān)控模塊126可以從服務(wù)信息庫(kù)124中獲取服務(wù)名稱(chēng)的列表,然后根據(jù)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址調(diào)用各個(gè)服務(wù)提供的監(jiān)控報(bào)告接口,查看返回的數(shù)據(jù)是否正常。如果調(diào)用某個(gè)服務(wù)的監(jiān)控報(bào)告接口不能返回?cái)?shù)據(jù)或者返回的數(shù)據(jù)不正常,說(shuō)明該服務(wù)不健康。
如果發(fā)現(xiàn)某個(gè)服務(wù)不健康,則可以調(diào)用服務(wù)注冊(cè)模塊125提供的服務(wù)注冊(cè)信息刪除接口,從服務(wù)信息庫(kù)中刪除該服務(wù)的服務(wù)名稱(chēng)和服務(wù)地址等信息。
本發(fā)明實(shí)施例實(shí)時(shí)更新服務(wù)的服務(wù)名稱(chēng)和服務(wù)地址,保證了服務(wù)地址地準(zhǔn)確性,并將服務(wù)名稱(chēng)和服務(wù)地址加載在緩存中,加快了服務(wù)地址的讀取速度,從而達(dá)到了快速準(zhǔn)確獲取服務(wù)地址的效果。
本發(fā)明實(shí)施例提供了一種服務(wù)地址的讀取方法,該方法的執(zhí)行主體可以是上述服務(wù)地址的讀取裝置,圖2是本發(fā)明實(shí)施例提供的服務(wù)地址的讀取方法的流程圖;如圖2所示,該方法包括步驟S210至步驟S240。
步驟S210,接收來(lái)自客戶(hù)端的調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng)。
優(yōu)選地,可以通過(guò)OpenResty平臺(tái)接收來(lái)自所示客戶(hù)端的請(qǐng)求。
步驟S220,實(shí)時(shí)更新服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址。
在接收到服務(wù)名稱(chēng)和服務(wù)地址后,保存至服務(wù)信息庫(kù)中,服務(wù)在啟動(dòng)完成后主動(dòng)提供服務(wù)名稱(chēng)和服務(wù)地址。
步驟S230,按預(yù)設(shè)時(shí)間間隔加載服務(wù)名稱(chēng)和服務(wù)地址。
優(yōu)選地,在按預(yù)設(shè)時(shí)間間隔加載服務(wù)名稱(chēng)和服務(wù)地址之后,還可以通過(guò)服務(wù)地址讀取服務(wù)的監(jiān)控?cái)?shù)據(jù);若無(wú)法獲取監(jiān)控?cái)?shù)據(jù)或監(jiān)控?cái)?shù)據(jù)不正常,則刪除該服務(wù)在服務(wù)信息庫(kù)中的服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址。
步驟S240,查找目標(biāo)服務(wù)名稱(chēng),若查找到目標(biāo)服務(wù)名稱(chēng),則將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端;若沒(méi)有查找到目標(biāo)服務(wù)名稱(chēng),則加載目標(biāo)服務(wù)名稱(chēng),并將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的目標(biāo)服務(wù)地址發(fā)送至客戶(hù)端。
本發(fā)明實(shí)施例實(shí)時(shí)更新服務(wù)的服務(wù)名稱(chēng)和服務(wù)地址,保證了服務(wù)地址地準(zhǔn)確性,并將服務(wù)名稱(chēng)和服務(wù)地址加載在緩存中,加快了服務(wù)地址的讀取速度,從而達(dá)到了快速準(zhǔn)確獲取服務(wù)地址的效果。
本發(fā)明優(yōu)選實(shí)施例提供了一種服務(wù)地址的讀取方法,圖3是本發(fā)明優(yōu)選實(shí)施例提供的服務(wù)地址的讀取方法的流程圖;如圖3所示,該方法包括步驟S310至步驟S350。
步驟S310,客戶(hù)端發(fā)送調(diào)用目標(biāo)服務(wù)的請(qǐng)求,請(qǐng)求中包括目標(biāo)服務(wù)名稱(chēng)。
步驟S320,網(wǎng)關(guān)接收來(lái)自客戶(hù)端的請(qǐng)求。
步驟S330,服務(wù)信息庫(kù)進(jìn)行實(shí)時(shí)更新服務(wù)名稱(chēng)和對(duì)應(yīng)的服務(wù)地址。
步驟S340,服務(wù)加載模塊按預(yù)設(shè)時(shí)間間隔將服務(wù)信息庫(kù)中的服務(wù)名稱(chēng)和服務(wù)地址加載至緩存中。
步驟S350,緩存提供服務(wù)名稱(chēng)供網(wǎng)關(guān)查找,若從服務(wù)名稱(chēng)中查找到目標(biāo)服務(wù)名稱(chēng),則將目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端;若沒(méi)有查找到目標(biāo)服務(wù)名稱(chēng),則服務(wù)加載模塊在緩存中加載目標(biāo)服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)地址之后,緩存將目標(biāo)服務(wù)對(duì)應(yīng)的服務(wù)地址發(fā)送至客戶(hù)端。
本發(fā)明實(shí)施例實(shí)時(shí)更新服務(wù)的服務(wù)名稱(chēng)和服務(wù)地址,保證了服務(wù)地址地準(zhǔn)確性,并將服務(wù)名稱(chēng)和服務(wù)地址加載在緩存中,加快了服務(wù)地址的讀取速度,從而達(dá)到了快速準(zhǔn)確獲取服務(wù)地址的效果。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,僅以上述各功能單元的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中,上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。另外,各功能單元的具體名稱(chēng)也只是為了便于相互區(qū)分,并不用于限制本申請(qǐng)的保護(hù)范圍。上述裝置中單元的具體工作過(guò)程,可以參考前述裝置實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同裝置來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露的裝置和系統(tǒng),可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明實(shí)施例各個(gè)實(shí)施例裝置的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例各實(shí)施例技術(shù)方案的精神和范圍。
以上僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。