本發(fā)明屬于服務(wù)注冊(cè)技術(shù)領(lǐng)域,尤其涉及一種服務(wù)注冊(cè)方法及裝置。
背景技術(shù):
docker是一個(gè)開源的應(yīng)用容器引擎,允許開發(fā)者打包應(yīng)用到容器中。在docker上構(gòu)建了一個(gè)容器后,用戶通過訪問此容器以完成特定的服務(wù)功能。當(dāng)構(gòu)建了一個(gè)容器后,為了使得用戶能夠及時(shí)發(fā)現(xiàn)此容器,以便訪問此容器并利用此容器提供的服務(wù)功能,需要在服務(wù)注冊(cè)中心注冊(cè)此容器。
現(xiàn)有技術(shù)中,實(shí)現(xiàn)服務(wù)注冊(cè)的方式是基于容器的ip實(shí)現(xiàn)服務(wù)注冊(cè)。注冊(cè)完成后,服務(wù)注冊(cè)中心會(huì)存儲(chǔ)有與容器所能完成的服務(wù)功能對(duì)應(yīng)的服務(wù)名稱,在服務(wù)名稱下存儲(chǔ)有容器的ip。在使用服務(wù)的過程中,從服務(wù)注冊(cè)中心中查找可用的容器并通過容器的ip實(shí)現(xiàn)網(wǎng)絡(luò)訪問此容器。
但是,由于服務(wù)注冊(cè)中心存儲(chǔ)的容器的ip是容器內(nèi)部的ip,容器內(nèi)部的ip是在創(chuàng)建docker容器時(shí),docker創(chuàng)建的在主機(jī)和容器之間的虛擬共享網(wǎng)絡(luò)中的一個(gè)ip地址。因此,其他的主機(jī)與此容器內(nèi)部的ip不能進(jìn)行通信,導(dǎo)致其他的主機(jī)不能通過此容器的內(nèi)部ip網(wǎng)絡(luò)訪問此容器內(nèi)部的服務(wù)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種服務(wù)注冊(cè)方法及裝置,用于解決現(xiàn)有技術(shù)中主機(jī)不能訪問位于另一臺(tái)主機(jī)內(nèi)的容器內(nèi)部網(wǎng)絡(luò),導(dǎo)致主機(jī)上面的服務(wù)不能直接訪問容器內(nèi)部的服務(wù)的問題。技術(shù)方案如下:
本發(fā)明提供一種服務(wù)注冊(cè)方法,包括:
獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí);
根據(jù)所述容器標(biāo)識(shí),獲取所述容器的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
將所述容器信息發(fā)送至服務(wù)注冊(cè)中心;其中,所述容器信息用于所述服務(wù)注冊(cè)中心生成服務(wù)注冊(cè)節(jié)點(diǎn)。
優(yōu)選地,所述將所述容器信息發(fā)送至服務(wù)注冊(cè)中心之后,還包括:
向所述服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求;
接收所述服務(wù)注冊(cè)中心返回的服務(wù)注冊(cè)節(jié)點(diǎn)信息;其中,所述服務(wù)注冊(cè)節(jié)點(diǎn)信息包括宿主機(jī)的ip地址和所述映射關(guān)系;
根據(jù)所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器。
優(yōu)選地,所述接收所述服務(wù)注冊(cè)中心返回的服務(wù)注冊(cè)節(jié)點(diǎn)信息之后,還包括:
將所述服務(wù)請(qǐng)求和所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存儲(chǔ)在配置文件中;其中,所述服務(wù)請(qǐng)求與所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存在對(duì)應(yīng)關(guān)系;
其中,所述根據(jù)所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器包括:
在所述配置文件中查找與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
當(dāng)查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),則根據(jù)所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器;
當(dāng)未查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),返回執(zhí)行向所述服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求的步驟。
本發(fā)明還提供另一種服務(wù)注冊(cè)方法,包括:
接收容器發(fā)送的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
根據(jù)所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
優(yōu)選地,所述接收容器發(fā)送的容器信息還包括:
接收容器發(fā)送的所述容器的服務(wù)名稱;
其中,所述根據(jù)所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)包括:
根據(jù)所述容器的服務(wù)名稱,生成第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn);
根據(jù)所述宿主機(jī)的ip地址和所述映射關(guān)系,在所述第一級(jí)服務(wù)節(jié)點(diǎn)下生成第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。
優(yōu)選地,所述根據(jù)所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)之后,還包括:
接收所述容器發(fā)送的服務(wù)請(qǐng)求;
獲取與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
將所述服務(wù)注冊(cè)節(jié)點(diǎn)信息發(fā)送至所述容器。
優(yōu)選地,所述根據(jù)所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)之后,還包括:
在預(yù)定時(shí)間內(nèi)判斷是否接收到所述容器發(fā)送的心跳信息;
當(dāng)預(yù)定時(shí)間內(nèi)沒有接收到所述容器發(fā)送的心跳信息時(shí),刪除與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
本發(fā)明還提供一種服務(wù)注冊(cè)裝置,包括:
第一獲取單元,用于獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí);
所述第一獲取單元,還用于根據(jù)所述容器標(biāo)識(shí),獲取所述容器的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
第一發(fā)送單元,用于將所述獲取單元獲取到的所述容器信息發(fā)送至服務(wù)注冊(cè)中心;其中,所述容器信息用于所述服務(wù)注冊(cè)中心生成服務(wù)注冊(cè)節(jié)點(diǎn)。
優(yōu)選地,還包括:
第二發(fā)送單元,用于向所述服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求;
第一接收單元,用于接收所述服務(wù)注冊(cè)中心返回的服務(wù)注冊(cè)節(jié)點(diǎn)信息;其中,所述服務(wù)注冊(cè)節(jié)點(diǎn)信息包括宿主機(jī)的ip地址和所述映射關(guān)系;
訪問單元,用于根據(jù)所述接收單元接收的所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器。
優(yōu)選地,還包括:
存儲(chǔ)單元,用于將所述服務(wù)請(qǐng)求和所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存儲(chǔ)在配置文件中;其中,所述服務(wù)請(qǐng)求與所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存在對(duì)應(yīng)關(guān)系;
其中,所述訪問單元,還包括:
查找子單元,用于在所述配置文件中查找與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
訪問子單元,當(dāng)所述查找子單元查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),則根據(jù)所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器;
當(dāng)所述查找子單元未查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),調(diào)用所述第二發(fā)送單元。
本發(fā)明還提供另一種服務(wù)注冊(cè)裝置,包括:
第二接收單元,用于接收容器發(fā)送的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
注冊(cè)單元,用于根據(jù)所述第一接收單元接收到的所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
優(yōu)選地,所述第二接收單元還用于接收容器發(fā)送的所述容器的服務(wù)名稱;
所述注冊(cè)單元,還包括:
第一注冊(cè)子單元,用于根據(jù)所述容器的服務(wù)名稱,生成第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn);
第二注冊(cè)子單元,用于根據(jù)所述宿主機(jī)的ip地址和所述映射關(guān)系,在所述第一級(jí)服務(wù)節(jié)點(diǎn)下生成第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。
優(yōu)選地,還包括:
第三接收單元,用于接收所述容器發(fā)送的服務(wù)請(qǐng)求;
第二獲取單元,用于獲取與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
第三發(fā)送單元,用于將所述獲取單元獲取到的所述服務(wù)注冊(cè)節(jié)點(diǎn)信息發(fā)送至所述容器。
優(yōu)選地,還包括:
判斷單元,用于在預(yù)定時(shí)間內(nèi)判斷是否接收到所述容器發(fā)送的心跳信息;
刪除單元,用于當(dāng)所述判斷單元判斷預(yù)定時(shí)間內(nèi)沒有接收到所述容器發(fā)送的心跳信息時(shí),刪除與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
與現(xiàn)有技術(shù)相比,本發(fā)明提供的上述技術(shù)方案具有如下優(yōu)點(diǎn):
從上述技術(shù)方案可知,本申請(qǐng)中獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí),根據(jù)容器標(biāo)識(shí)獲取容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系,將所述容器所在宿主機(jī)的ip地址和所述映射關(guān)系發(fā)送至服務(wù)注冊(cè)中心,實(shí)現(xiàn)在服務(wù)注冊(cè)中心注冊(cè)的目的。其他的主機(jī)與宿主機(jī)之間可以通過網(wǎng)絡(luò)實(shí)現(xiàn)互相訪問,且由于宿主機(jī)的網(wǎng)絡(luò)端口與容器的網(wǎng)絡(luò)端口之間存在映射關(guān)系,當(dāng)其他的主機(jī)通過網(wǎng)絡(luò)端口實(shí)現(xiàn)訪問宿主機(jī)時(shí),即可實(shí)現(xiàn)通過與宿主機(jī)的網(wǎng)絡(luò)端口具有映射關(guān)系的容器的網(wǎng)絡(luò)端口訪問容器的目的。進(jìn)而實(shí)現(xiàn)了其他的主機(jī)通過網(wǎng)絡(luò)訪問容器的目的。解決了現(xiàn)有技術(shù)中主機(jī)不能訪問位于另一臺(tái)主機(jī)內(nèi)的容器內(nèi)部網(wǎng)絡(luò),導(dǎo)致主機(jī)上面的服務(wù)不能直接訪問容器內(nèi)部的服務(wù)的問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種服務(wù)注冊(cè)方法的流程圖;
圖2是本發(fā)明實(shí)施例提供的另一種服務(wù)注冊(cè)方法的流程圖;
圖3是本發(fā)明實(shí)施例提供的另一種服務(wù)注冊(cè)方法的流程圖;
圖4是本發(fā)明實(shí)施例提供的另一種服務(wù)注冊(cè)方法的流程圖;
圖5是本發(fā)明實(shí)施例提供的一種服務(wù)注冊(cè)裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的另一種服務(wù)注冊(cè)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本實(shí)施例公開了一種服務(wù)注冊(cè)方法,所述服務(wù)注冊(cè)方法應(yīng)用于基于docker構(gòu)建的容器上,參見圖1,該實(shí)施例包括以下步驟:
s101、獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí);
基于docker構(gòu)建容器后,通過容器運(yùn)行命令啟動(dòng)容器后,獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí)。其中,容器標(biāo)識(shí)用于唯一標(biāo)識(shí)容器。
在實(shí)際使用時(shí),容器標(biāo)識(shí)可以是創(chuàng)建基于docker的容器時(shí),分配給容器的一個(gè)全局唯一的標(biāo)識(shí)符(uuid)。由于標(biāo)識(shí)符是在創(chuàng)建容器時(shí),自動(dòng)為容器分配的唯一標(biāo)識(shí)符,因此避免了命名沖突和人為更改導(dǎo)致的容器標(biāo)識(shí)不唯一的問題產(chǎn)生。容器標(biāo)識(shí)還可以是創(chuàng)建容器時(shí)用多個(gè)單詞隨機(jī)生成的容器名字。
s102、根據(jù)所述容器標(biāo)識(shí),獲取所述容器的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
在啟動(dòng)容器時(shí),通過“-p”或“-p參數(shù)”指定端口映射。例如通過“-p5123:80”指令即可實(shí)現(xiàn)將容器的80端口映射為容器所在宿主機(jī)的5123端口,形成容器的網(wǎng)絡(luò)端口與容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系。使得外部程序通過宿主機(jī)的網(wǎng)絡(luò)端口訪問,就能直接訪問基于docker的容器。
當(dāng)容器啟動(dòng)并創(chuàng)建了容器的網(wǎng)絡(luò)端口與容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系后,容器會(huì)存儲(chǔ)此映射關(guān)系。
根據(jù)容器標(biāo)識(shí),從容器內(nèi)存儲(chǔ)此映射關(guān)系的地址下,獲取容器的網(wǎng)絡(luò)端口與容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系。
并根據(jù)容器標(biāo)識(shí),識(shí)別出容器所在宿主機(jī),然后獲取宿主機(jī)的ip地址。
s103、將所述容器信息發(fā)送至服務(wù)注冊(cè)中心;其中,所述容器信息用于所述服務(wù)注冊(cè)中心生成服務(wù)注冊(cè)節(jié)點(diǎn)。
將宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系發(fā)送至服務(wù)注冊(cè)中心,服務(wù)注冊(cè)中心根據(jù)接收到的容器信息生成服務(wù)注冊(cè)節(jié)點(diǎn)。
在本實(shí)施例中服務(wù)注冊(cè)中心為zookeeper注冊(cè)中心,當(dāng)然也可以為其他類型的服務(wù)注冊(cè)中心。
從上述技術(shù)方案可知,本申請(qǐng)中獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí),根據(jù)容器標(biāo)識(shí)獲取容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系,將所述容器所在宿主機(jī)的ip地址和所述映射關(guān)系發(fā)送至服務(wù)注冊(cè)中心,實(shí)現(xiàn)在服務(wù)注冊(cè)中心注冊(cè)的目的。其他的主機(jī)與宿主機(jī)之間可以通過網(wǎng)絡(luò)實(shí)現(xiàn)互相訪問,且由于宿主機(jī)的網(wǎng)絡(luò)端口與容器的網(wǎng)絡(luò)端口之間存在映射關(guān)系,當(dāng)其他的主機(jī)通過網(wǎng)絡(luò)端口實(shí)現(xiàn)訪問宿主機(jī)時(shí),即可實(shí)現(xiàn)通過與宿主機(jī)的網(wǎng)絡(luò)端口具有映射關(guān)系的容器的網(wǎng)絡(luò)端口訪問容器的目的。進(jìn)而實(shí)現(xiàn)了其他的主機(jī)通過網(wǎng)絡(luò)訪問容器的目的。解決了現(xiàn)有技術(shù)中主機(jī)不能訪問位于另一臺(tái)主機(jī)內(nèi)的容器內(nèi)部網(wǎng)絡(luò),導(dǎo)致主機(jī)上面的服務(wù)不能直接訪問容器內(nèi)部的服務(wù)的問題。
本發(fā)明公開了另一種服務(wù)注冊(cè)方法,參見圖2,該實(shí)施例包括以下步驟:
s201、獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí);
s202、根據(jù)所述容器標(biāo)識(shí),獲取所述容器的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
s203、將所述容器信息發(fā)送至服務(wù)注冊(cè)中心;其中,所述容器信息用于所述服務(wù)注冊(cè)中心生成服務(wù)注冊(cè)節(jié)點(diǎn);本實(shí)施例中步驟s201-s203的實(shí)現(xiàn)方式與上一實(shí)施例中步驟s101-s103的實(shí)現(xiàn)方式類似,此處不在贅述。
s204、向所述服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求;
當(dāng)前能夠提供服務(wù)的容器,即當(dāng)前處于啟動(dòng)狀態(tài)的容器都會(huì)在服務(wù)注冊(cè)中心完成服務(wù)注冊(cè)。當(dāng)一個(gè)容器需要訪問另一容器時(shí),通過向服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求,即可從服務(wù)注冊(cè)中心處獲知當(dāng)前能夠提供服務(wù)的容器的相關(guān)信息,進(jìn)而根據(jù)服務(wù)注冊(cè)中心返回的信息,訪問能提供服務(wù)的容器。
s205、接收所述服務(wù)注冊(cè)中心返回的服務(wù)注冊(cè)節(jié)點(diǎn)信息;其中,所述服務(wù)注冊(cè)節(jié)點(diǎn)信息包括宿主機(jī)的ip地址和所述映射關(guān)系;
接收到服務(wù)注冊(cè)中心返回的服務(wù)注冊(cè)節(jié)點(diǎn)信息后,將所述服務(wù)請(qǐng)求和所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存儲(chǔ)在配置文件中;其中,所述服務(wù)請(qǐng)求與所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存在對(duì)應(yīng)關(guān)系。
s206、根據(jù)所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器。
由于在配置文件中存儲(chǔ)的是服務(wù)請(qǐng)求和與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息,在容器訪問能夠提供服務(wù)的容器時(shí),根據(jù)服務(wù)請(qǐng)求在配置文件中查找與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
當(dāng)查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),說明配置文件中存儲(chǔ)有與服務(wù)請(qǐng)求對(duì)應(yīng)的能夠提供服務(wù)的容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息,則根據(jù)配置文件中存儲(chǔ)的服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器。
由于容器的狀態(tài)是變化的,而只有處于啟動(dòng)狀態(tài)的容器才能提供服務(wù),處于關(guān)閉狀態(tài)的容器不能提供服務(wù)。因此,當(dāng)配置文件中存儲(chǔ)的與服務(wù)注冊(cè)節(jié)點(diǎn)信息對(duì)應(yīng)的容器關(guān)閉后,仍然根據(jù)配置文件中存儲(chǔ)的與服務(wù)請(qǐng)求對(duì)應(yīng)的此服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問容器時(shí),將不能利用容器所提供的服務(wù)。
為了避免此問題的發(fā)生,容器可以向服務(wù)注冊(cè)中心訂閱與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息。在容器訂閱了與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息后,服務(wù)注冊(cè)中心中與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息發(fā)生變化時(shí),將更新后的服務(wù)注冊(cè)節(jié)點(diǎn)信息實(shí)時(shí)發(fā)送至容器,容器接收到更新后的服務(wù)注冊(cè)節(jié)點(diǎn)信息后,修改配置文件中存儲(chǔ)的與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息。使得配置文件中存儲(chǔ)的與服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息是能夠提供服務(wù)的容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息,避免了通過配置文件中存儲(chǔ)的服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問的容器不能提供服務(wù)的問題產(chǎn)生。
當(dāng)未查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),說明配置文件中沒有存儲(chǔ)有與服務(wù)請(qǐng)求對(duì)應(yīng)的能夠提供服務(wù)的容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息,則執(zhí)行向所述服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求的步驟,以實(shí)現(xiàn)從服務(wù)注冊(cè)中心獲取能夠提供服務(wù)的容器的服務(wù)注冊(cè)節(jié)點(diǎn)信息。
在本實(shí)施例中,通過向服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求,接收服務(wù)注冊(cè)中心返回的能夠提供服務(wù)的容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息,并存儲(chǔ)在配置文件中,通過配置文件中存儲(chǔ)的服務(wù)注冊(cè)節(jié)點(diǎn)信息實(shí)現(xiàn)訪問容器的目的。
本實(shí)施公開了一種服務(wù)注冊(cè)方法,所述服務(wù)注冊(cè)方法應(yīng)用于服務(wù)注冊(cè)中心,參見圖3,該實(shí)施例包括以下步驟:
s301、接收容器發(fā)送的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
可選地,容器發(fā)送的容器信息除了包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系這兩項(xiàng)之外,還包括容器的服務(wù)名稱;
容器的服務(wù)名稱可以是在容器建立時(shí),通過“name”指令自行定義的。通常以容器所能提供的服務(wù)定義容器的服務(wù)名稱。
s302、根據(jù)所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
具體地,根據(jù)接收到的容器的服務(wù)名稱,生成第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn);
其中,第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)的名稱可以直接以容器的服務(wù)名稱命名。
根據(jù)接收到的宿主機(jī)的ip地址和所述映射關(guān)系,在所述第一級(jí)服務(wù)節(jié)點(diǎn)下生成第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。
可選地,在生成第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)之前,還包括:
接收到容器的服務(wù)名稱后,判斷是否存在與所述服務(wù)名稱相同的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)名稱;
不存在與所述服務(wù)名稱相同的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)名稱時(shí),則根據(jù)接收到的容器的服務(wù)名稱,生成第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn);根據(jù)接收到的宿主機(jī)的ip地址和所述映射關(guān)系,在所述第一級(jí)服務(wù)節(jié)點(diǎn)下生成第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。
存在與所述服務(wù)名稱相同的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)名稱時(shí),則將接收到的宿主機(jī)的ip地址和所述映射關(guān)系,在已經(jīng)存在的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)下,增加一個(gè)第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),新增加的第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)信息包括接收到的宿主機(jī)的ip地址和所述映射關(guān)系。使得能夠提供相同服務(wù)的容器,都注冊(cè)到相同的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),便于管理服務(wù)注冊(cè)節(jié)點(diǎn)。
在本發(fā)明實(shí)施例中,利用接收到的容器所在宿主機(jī)的ip地址、所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系以及容器的服務(wù)名稱,生成兩級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。由于在服務(wù)注冊(cè)中心注冊(cè)的是容器所在宿主機(jī)的ip地址,宿主機(jī)能夠與其他的主機(jī)通過網(wǎng)絡(luò)實(shí)現(xiàn)互相訪問,且由于宿主機(jī)的網(wǎng)絡(luò)端口與容器的網(wǎng)絡(luò)端口之間存在映射關(guān)系,當(dāng)其他的主機(jī)通過網(wǎng)絡(luò)端口實(shí)現(xiàn)訪問宿主機(jī)時(shí),即可實(shí)現(xiàn)通過與宿主機(jī)的網(wǎng)絡(luò)端口具有映射關(guān)系的容器的網(wǎng)絡(luò)端口訪問容器的目的。進(jìn)而實(shí)現(xiàn)了其他的主機(jī)通過網(wǎng)絡(luò)訪問容器的目的。解決了現(xiàn)有技術(shù)中主機(jī)不能訪問位于另一臺(tái)主機(jī)內(nèi)的容器內(nèi)部網(wǎng)絡(luò),導(dǎo)致主機(jī)上面的服務(wù)不能直接訪問容器內(nèi)部的服務(wù)的問題。同時(shí),將具有相同服務(wù)的容器,都注冊(cè)到一個(gè)節(jié)點(diǎn)下,便于管理注冊(cè)節(jié)點(diǎn)。
本實(shí)施公開了另一種服務(wù)注冊(cè)方法,所述服務(wù)注冊(cè)方法應(yīng)用于服務(wù)注冊(cè)中心,參見圖4,該實(shí)施例包括以下步驟:
s401、接收容器發(fā)送的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
s402、根據(jù)所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn);
本實(shí)施例中步驟s401-s402的實(shí)現(xiàn)方式與上一實(shí)施例中步驟s301-s302的實(shí)現(xiàn)方式類似,此處不在贅述。
s403、接收所述容器發(fā)送的服務(wù)請(qǐng)求;
服務(wù)請(qǐng)求包括所述容器需要的服務(wù)名稱。
s404、獲取與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
服務(wù)注冊(cè)中心生成的與容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)是兩級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)的名稱與容器的服務(wù)名稱相同。
由于接收到的容器發(fā)送的服務(wù)請(qǐng)求中包括服務(wù)名稱,因此根據(jù)服務(wù)請(qǐng)求中包括的服務(wù)名稱,查找與服務(wù)名稱相同的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。查找到第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)后,獲取第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)下的第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)信。
其中,由于能夠提供相同服務(wù)的容器都注冊(cè)到相同的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),因此,在一個(gè)第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)下可能存在多個(gè)第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),每個(gè)第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)容器,這時(shí)可以獲取任一第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)的信息。
s405、將所述服務(wù)注冊(cè)節(jié)點(diǎn)信息發(fā)送至所述容器。
將第二服務(wù)注冊(cè)節(jié)點(diǎn)的信息發(fā)送至容器,使得容器根據(jù)接收到的第二服務(wù)注冊(cè)節(jié)點(diǎn)的信息訪問能夠提供服務(wù)的容器。
可選地,在本實(shí)施例中步驟s402之后,還包括:
s406、預(yù)定時(shí)間內(nèi)判斷是否接收到所述容器發(fā)送的心跳信息;當(dāng)預(yù)定時(shí)間內(nèi)沒有接收到所述容器發(fā)送的心跳信息,則執(zhí)行s407;
容器處于開啟狀態(tài)并完成在服務(wù)注冊(cè)中心的服務(wù)注冊(cè)后,每隔預(yù)定時(shí)間向服務(wù)注冊(cè)中心發(fā)送一次心跳信息,服務(wù)注冊(cè)中心接收到容器發(fā)送的心跳信息,則確定此容器仍然處于開啟狀態(tài),繼續(xù)維持與容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
當(dāng)預(yù)定時(shí)間內(nèi)服務(wù)注冊(cè)中心沒有接收到容器發(fā)送的心跳信息,則確定此容器已經(jīng)關(guān)閉,此容器將不能提供服務(wù),則刪除與容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
s407、刪除與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
由于容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)是兩級(jí)的服務(wù)注冊(cè)節(jié)點(diǎn),第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的是能夠提供相同服務(wù)的多個(gè)容器,而第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)才對(duì)應(yīng)唯一的一個(gè)容器,當(dāng)刪除與容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)時(shí),可以只刪除第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),而并不刪除第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)??梢岳斫獾氖?,在第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)下僅存在一個(gè)第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)時(shí),在確定需要?jiǎng)h除第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)時(shí),可以同時(shí)將第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)刪除。
本實(shí)施例中步驟s406-s407的執(zhí)行順序,只要在步驟s402之后即可,而并不限定步驟s406-s407與步驟s403-s405的執(zhí)行先后順序。
在本發(fā)明實(shí)施例中,服務(wù)注冊(cè)中心接收已經(jīng)完成服務(wù)注冊(cè)的容器發(fā)送的心跳信息,判斷容器是否處于開啟狀態(tài),當(dāng)容器處于開啟狀態(tài),則維持與容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn),當(dāng)容器處于關(guān)閉狀態(tài),則刪除與容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。避免了服務(wù)注冊(cè)中心內(nèi)存儲(chǔ)有不能提供服務(wù)的容器的信息,導(dǎo)致不能給容器提供正確的訪問信息的問題產(chǎn)生。且接收到容器發(fā)送的服務(wù)請(qǐng)求后,通過先查找第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn),找到能夠提供所需服務(wù)的第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)后,再?gòu)牡谝患?jí)服務(wù)注冊(cè)節(jié)點(diǎn)的下一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)選擇容器的信息,并返回給容器。采用逐級(jí)查找的方式,提高了查找速度,能夠快速地響應(yīng)容器發(fā)送的服務(wù)請(qǐng)求。
對(duì)應(yīng)上述服務(wù)注冊(cè)方法,本發(fā)明還提供了一種服務(wù)注冊(cè)裝置,所述服務(wù)注冊(cè)裝置應(yīng)用在容器側(cè),所述服務(wù)注冊(cè)裝置的結(jié)構(gòu)示意圖請(qǐng)參閱圖5所示,本實(shí)施例中服務(wù)注冊(cè)裝置包括:
第一獲取單元501和第一發(fā)送單元502;
第一獲取單元501,用于獲取處于啟動(dòng)狀態(tài)的容器對(duì)應(yīng)的容器標(biāo)識(shí);
所述第一獲取單元501,還用于根據(jù)所述容器標(biāo)識(shí),獲取所述容器的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
第一發(fā)送單元502,用于將所述獲取單元獲取到的所述容器信息發(fā)送至服務(wù)注冊(cè)中心;其中,所述容器信息用于所述服務(wù)注冊(cè)中心生成服務(wù)注冊(cè)節(jié)點(diǎn)。
可選地,所述服務(wù)注冊(cè)裝置還包括:
第二發(fā)送單元503、第一接收單元504、訪問單元505和存儲(chǔ)單元506;
第二發(fā)送單元503,用于向所述服務(wù)注冊(cè)中心發(fā)送服務(wù)請(qǐng)求;
接收單元504,用于接收所述服務(wù)注冊(cè)中心返回的服務(wù)注冊(cè)節(jié)點(diǎn)信息;其中,所述服務(wù)注冊(cè)節(jié)點(diǎn)信息包括宿主機(jī)的ip地址和所述映射關(guān)系;
訪問單元505,用于根據(jù)所述接收單元接收的所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器。
存儲(chǔ)單元506,用于將所述服務(wù)請(qǐng)求和所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存儲(chǔ)在配置文件中;其中,所述服務(wù)請(qǐng)求與所述服務(wù)注冊(cè)節(jié)點(diǎn)信息存在對(duì)應(yīng)關(guān)系;
可選地,所述訪問單元505,還包括:
查找子單元,用于在所述配置文件中查找與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
訪問子單元,當(dāng)所述查找子單元查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),則根據(jù)所述服務(wù)注冊(cè)節(jié)點(diǎn)信息訪問與所述服務(wù)注冊(cè)節(jié)點(diǎn)對(duì)應(yīng)的容器;
當(dāng)所述查找子單元未查找到與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息時(shí),調(diào)用所述第二發(fā)送單元。
從上述技術(shù)方案可知,本實(shí)施例中公開的服務(wù)注冊(cè)裝置,獲取單元獲取處于啟動(dòng)狀態(tài)的容器的容器標(biāo)識(shí),并根據(jù)容器標(biāo)識(shí),獲取所述容器的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系,通過第一發(fā)送單元將獲取單元獲取到的容器信息發(fā)送至服務(wù)注冊(cè)中心,所述容器信息用于所述服務(wù)注冊(cè)中心生成服務(wù)注冊(cè)節(jié)點(diǎn)。由于宿主機(jī)能夠與位其他主機(jī)通過網(wǎng)絡(luò)實(shí)現(xiàn)互相訪問,且由于宿主機(jī)的網(wǎng)絡(luò)端口與容器的網(wǎng)絡(luò)端口之間存在映射關(guān)系,當(dāng)其他的主機(jī)通過網(wǎng)絡(luò)端口實(shí)現(xiàn)訪問宿主機(jī)時(shí),即可實(shí)現(xiàn)通過與宿主機(jī)的網(wǎng)絡(luò)端口具有映射關(guān)系的容器的網(wǎng)絡(luò)端口訪問容器的目的。進(jìn)而實(shí)現(xiàn)了其他的主機(jī)通過網(wǎng)絡(luò)訪問容器的目的。解決了現(xiàn)有技術(shù)中主機(jī)不能訪問位于另一臺(tái)主機(jī)內(nèi)的容器內(nèi)部網(wǎng)絡(luò),導(dǎo)致主機(jī)上面的服務(wù)不能直接訪問容器內(nèi)部的服務(wù)的問題。
本發(fā)明實(shí)施例還提供了另一種服務(wù)注冊(cè)裝置,所述服務(wù)注冊(cè)裝置應(yīng)用在服務(wù)注冊(cè)中心側(cè),其結(jié)構(gòu)示意圖請(qǐng)參閱圖6所示,本實(shí)施例中服務(wù)注冊(cè)裝置包括:
第二接收單元601和注冊(cè)單元602;
第二接收單元601,用于接收容器發(fā)送的容器信息;其中,所述容器信息包括容器所在宿主機(jī)的ip地址和所述容器的網(wǎng)絡(luò)端口與所述容器所在宿主機(jī)的網(wǎng)絡(luò)端口之間的映射關(guān)系;
可選地,所述第二接收單元601,還用于接收容器發(fā)送的所述容器的服務(wù)名稱;
注冊(cè)單元602,用于根據(jù)所述第一接收單元接收到的所述容器信息,生成與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
可選地,所述注冊(cè)單元602,還包括:
第一注冊(cè)子單元、第二注冊(cè)子單元;
第一注冊(cè)子單元,用于根據(jù)所述容器的服務(wù)名稱,生成第一級(jí)服務(wù)注冊(cè)節(jié)點(diǎn);
第二注冊(cè)子單元,用于根據(jù)所述宿主機(jī)的ip地址和所述映射關(guān)系,在所述第一級(jí)服務(wù)節(jié)點(diǎn)下生成第二級(jí)服務(wù)注冊(cè)節(jié)點(diǎn)。
可選地,所述服務(wù)注冊(cè)裝置,還包括:
第三接收單元603、第二獲取單元604、第三發(fā)送單元605、判斷單元606和刪除單元607;
第三接收單元603,用于接收所述容器發(fā)送的服務(wù)請(qǐng)求;
第二獲取單元604,用于獲取與所述服務(wù)請(qǐng)求對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)信息;
第三發(fā)送單元605,用于將所述獲取單元獲取到的所述服務(wù)注冊(cè)節(jié)點(diǎn)信息發(fā)送至所述容器;
判斷單元606,用于在預(yù)定時(shí)間內(nèi)判斷是否接收到所述容器發(fā)送的心跳信息;
刪除單元607,用于當(dāng)所述判斷單元判斷預(yù)定時(shí)間內(nèi)沒有接收到所述容器發(fā)送的心跳信息時(shí),刪除與所述容器對(duì)應(yīng)的服務(wù)注冊(cè)節(jié)點(diǎn)。
從上述技術(shù)方案可知,本實(shí)施例中公開的服務(wù)注冊(cè)裝置,通過注冊(cè)單元將具有相同服務(wù)功能的容器,都注冊(cè)到一個(gè)節(jié)點(diǎn)下,便于服務(wù)注冊(cè)中心管理注冊(cè)節(jié)點(diǎn)。在第二接收單元接收到容器發(fā)送的服務(wù)請(qǐng)求后,采用逐級(jí)查找的方式,從注冊(cè)節(jié)點(diǎn)中獲取對(duì)應(yīng)服務(wù)請(qǐng)求的服務(wù)注冊(cè)節(jié)點(diǎn)信息,提高了查找速度,能夠快速地響應(yīng)容器發(fā)送的服務(wù)請(qǐng)求。同時(shí),通過刪除單元?jiǎng)h除不能提供服務(wù)的容器的注冊(cè)節(jié)點(diǎn),避免了服務(wù)注冊(cè)中心內(nèi)存儲(chǔ)有不能提供服務(wù)的容器的信息,導(dǎo)致不能給容器提供正確的訪問信息的問題產(chǎn)生。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例提供的裝置而言,由于其與實(shí)施例提供的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。