欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于容器的服務(wù)多版本共存實(shí)現(xiàn)方法與流程

文檔序號(hào):12491475閱讀:213來(lái)源:國(guó)知局
一種基于容器的服務(wù)多版本共存實(shí)現(xiàn)方法與流程
本發(fā)明屬于分布式服務(wù)領(lǐng)域,具體涉及一種基于容器的服務(wù)多版本共存實(shí)現(xiàn)方法。
背景技術(shù)
:互聯(lián)網(wǎng)企業(yè),由于業(yè)務(wù)發(fā)展迅速、需求變化快等因素,需要軟件應(yīng)用能快速地實(shí)現(xiàn)業(yè)務(wù)以及響應(yīng)客戶(hù)需求的變化,所以分布式服務(wù)得到了廣泛的應(yīng)用。分布式服務(wù)的使用帶來(lái)了如下3大好處:(1)獨(dú)立高負(fù)載模塊:將負(fù)載高的模塊獨(dú)立成一個(gè)服務(wù),部署到獨(dú)立的機(jī)器上,使高負(fù)載模塊獨(dú)享硬件資源,也避免高負(fù)載模塊影響其它模塊的正常使用。例如:產(chǎn)品模塊可能是個(gè)訪(fǎng)問(wèn)量很大的模塊,可以將其以服務(wù)的方式發(fā)布,其它模塊調(diào)用其服務(wù)來(lái)訪(fǎng)問(wèn)其功能;(2)方便系統(tǒng)容量的伸縮:當(dāng)服務(wù)訪(fǎng)問(wèn)量增加時(shí),獨(dú)立的服務(wù)可通過(guò)簡(jiǎn)單的增加硬件的方式進(jìn)行容量的擴(kuò)充。而當(dāng)服務(wù)訪(fǎng)問(wèn)量降低后,多余的服務(wù)可以停止,可節(jié)約硬件的使用。例如:上面的產(chǎn)品模塊,當(dāng)訪(fǎng)問(wèn)量增加后,可以直接增加產(chǎn)品服務(wù)來(lái)進(jìn)行擴(kuò)容,訪(fǎng)問(wèn)量降低后,多余的服務(wù)可進(jìn)行停止,硬件回收;(3)利于功能模塊的復(fù)用:對(duì)于多個(gè)系統(tǒng)需要公用的功能模塊,可以獨(dú)立成獨(dú)立服務(wù),降低代碼的重復(fù)。例如:多個(gè)系統(tǒng)都有登陸模塊,可以將其獨(dú)立為服務(wù)的形式發(fā)布,避免登陸模塊代碼的重復(fù)。分布式服務(wù)雖然帶來(lái)上述優(yōu)勢(shì),但同時(shí)也帶來(lái)讓人頭痛的難題,即無(wú)法方便的對(duì)服務(wù)進(jìn)行升降級(jí)。目前通用的服務(wù)升級(jí)流程包括:步驟1:停止部分服務(wù)應(yīng)用,對(duì)此部分服務(wù)進(jìn)行升級(jí)操作,如果新服務(wù)的接口與老服務(wù)的接口不相同,則需要避免未升級(jí)的客戶(hù)端訪(fǎng)問(wèn)到升級(jí)后的服務(wù);步驟2:停止部分客戶(hù)端應(yīng)用,升級(jí)客戶(hù)端應(yīng)用,并指定其訪(fǎng)問(wèn)升級(jí)后的服務(wù);步驟3:重復(fù)步驟1-步驟2,直至所有的服務(wù)全部升級(jí)完成;相對(duì)于集中式服務(wù)部署,分布式服務(wù)分布的復(fù)雜難度高。其一是因?yàn)樵诜植际椒?wù)部署中,集中式的應(yīng)用被切分成了多個(gè)應(yīng)用,各個(gè)應(yīng)用部署在多臺(tái)機(jī)器上,發(fā)布量成倍增長(zhǎng),導(dǎo)致服務(wù)升降級(jí)時(shí)需要操作的機(jī)器成倍增長(zhǎng);其二是因?yàn)閭鹘y(tǒng)服務(wù)的發(fā)布需要重啟服務(wù),導(dǎo)致發(fā)布時(shí)間較長(zhǎng),可能需要數(shù)分鐘至數(shù)小時(shí)之久,進(jìn)一步增加了分布式服務(wù)發(fā)布的難度;其三是由于缺乏對(duì)服務(wù)的明確標(biāo)示,無(wú)法區(qū)分新老服務(wù),當(dāng)新服務(wù)與老服務(wù)不兼容時(shí),需要避免老客戶(hù)端訪(fǎng)問(wèn)新服務(wù)。如何突破傳統(tǒng)服務(wù)發(fā)布需要重啟的局限性,同時(shí)實(shí)現(xiàn)既享有分布式服務(wù)所帶來(lái)的好處,又不會(huì)增加服務(wù)發(fā)布與升降級(jí)的難度是當(dāng)前急于迫切解決的難題。技術(shù)實(shí)現(xiàn)要素:為突破現(xiàn)有技術(shù)的局限性,本發(fā)明的目的是,通過(guò)在服務(wù)提供端配置多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)服務(wù)節(jié)點(diǎn)內(nèi)配置多個(gè)容器,每個(gè)容器裝載不同的服務(wù)集,不僅實(shí)現(xiàn)多版本服務(wù)的共存,也實(shí)現(xiàn)服務(wù)共存環(huán)境中清晰地區(qū)分不同服務(wù)類(lèi)型及同一服務(wù)類(lèi)型的不同版本;利用容器區(qū)分新、老版本服務(wù),當(dāng)添加新服務(wù)或停止舊服務(wù)后,客戶(hù)端能根據(jù)自身的版本自動(dòng)篩選欲調(diào)用的服務(wù)版本,并從相應(yīng)的容器內(nèi)獲得服務(wù)調(diào)用結(jié)果,減少因客戶(hù)端與調(diào)用服務(wù)版本不相一致時(shí)的人為控制調(diào)用;多版本服務(wù)的共存使服務(wù)應(yīng)用在升級(jí)過(guò)程不需要再通過(guò)重新啟動(dòng)加載新服務(wù),簡(jiǎn)化服務(wù)升級(jí)的繁瑣流程,實(shí)現(xiàn)分布式環(huán)境中的服務(wù)熱部署;本發(fā)明的技術(shù)方案是:一種基于容器的服務(wù)多版本共存實(shí)現(xiàn)方法,其特征在于,通過(guò)在服務(wù)端(服務(wù)提供端)配置多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)服務(wù)節(jié)點(diǎn)內(nèi)配置多個(gè)容器,每個(gè)容器裝載不同的服務(wù)集,不僅使服務(wù)的多個(gè)版本共存,也使在服務(wù)共存環(huán)境中清晰地區(qū)分不同服務(wù)類(lèi)型及同一服務(wù)類(lèi)型的不同版本;利用容器區(qū)分新、老版本服務(wù),當(dāng)添加新服務(wù)或停止舊服務(wù)后,客戶(hù)端能根據(jù)自身的版本自動(dòng)篩選欲調(diào)用的服務(wù)版本,并從相應(yīng)的容器內(nèi)獲得服務(wù)調(diào)用結(jié)果,減少因客戶(hù)端與調(diào)用服務(wù)版本不相一致時(shí)的人為控制調(diào)用;多版本服務(wù)的共存使服務(wù)應(yīng)用在升級(jí)過(guò)程不需要再通過(guò)重新啟動(dòng)加載新服務(wù),簡(jiǎn)化服務(wù)升級(jí)的繁瑣流程,實(shí)現(xiàn)分布式環(huán)境中的服務(wù)熱部署;具體步驟如下:步驟1:環(huán)境初始化,(1)服務(wù)端內(nèi)配置多個(gè)服務(wù)節(jié)點(diǎn),不同服務(wù)節(jié)點(diǎn)以IP地址和端口號(hào)作為唯一識(shí)別;(2)服務(wù)節(jié)點(diǎn)配置多個(gè)裝載服務(wù)集的容器,并為不同容器分配唯一的ID號(hào);(3)服務(wù)節(jié)點(diǎn)啟動(dòng),并檢查服務(wù)集的配置信息,配置信息指明當(dāng)前需要發(fā)布的服務(wù)集名稱(chēng)和版本,以及這些服務(wù)集在服務(wù)節(jié)點(diǎn)內(nèi)如何分配的信息;所述服務(wù)集,是業(yè)務(wù)服務(wù)的集合,是業(yè)務(wù)服務(wù)在容器內(nèi)部署的最小單位;每一次新服務(wù)發(fā)布前,服務(wù)節(jié)點(diǎn)要從服務(wù)集倉(cāng)庫(kù)中下載欲發(fā)布的服務(wù)集,獲取服務(wù)集配置信息;服務(wù)集由服務(wù)集倉(cāng)庫(kù)統(tǒng)一管理,服務(wù)集倉(cāng)庫(kù)提供服務(wù)集的上傳、下載及版本管理;所述容器,是部署服務(wù)集的組件,是用于提供服務(wù)集運(yùn)行的必要環(huán)境;所述服務(wù)節(jié)點(diǎn),是包含容器的服務(wù)應(yīng)用;一臺(tái)物理機(jī)能部署多個(gè)服務(wù)節(jié)點(diǎn),一個(gè)服務(wù)節(jié)點(diǎn)內(nèi)能部署多個(gè)容器;特別地,所述服務(wù)集倉(cāng)庫(kù)和所述容器不同屬于一個(gè)概念,所述服務(wù)集倉(cāng)庫(kù)中存儲(chǔ)所有當(dāng)前需要發(fā)布的服務(wù)集的配置信息,而所述容器是用于加載所述服務(wù)集倉(cāng)庫(kù)中某一個(gè)服務(wù)集的內(nèi)容;步驟2:服務(wù)節(jié)點(diǎn)運(yùn)行過(guò)程中啟動(dòng)服務(wù)節(jié)點(diǎn)中的容器,服務(wù)節(jié)點(diǎn)按照經(jīng)檢查過(guò)的服務(wù)集配置信息,將各服務(wù)集裝載入相應(yīng)的容器中;每個(gè)容器僅裝載一個(gè)服務(wù)集,且不同版本的服務(wù)集也由不同的容器裝載;特別地,在服務(wù)節(jié)點(diǎn)的運(yùn)行過(guò)程中,服務(wù)節(jié)點(diǎn)能通過(guò)啟動(dòng)容器、停止容器、發(fā)布服務(wù)集的操作,動(dòng)態(tài)地操作容器裝載需要發(fā)布的服務(wù)集或停止正在運(yùn)行的容器;步驟3:由各個(gè)容器啟動(dòng)裝載在各自?xún)?nèi)部的服務(wù)集,將服務(wù)集中當(dāng)前需要對(duì)外發(fā)布的服務(wù)注冊(cè)信息輸入服務(wù)注冊(cè)中心,注冊(cè)消息包含需注冊(cè)服務(wù)的名稱(chēng)、服務(wù)版本號(hào)、服務(wù)所在服務(wù)節(jié)點(diǎn)的IP地址和接口號(hào),以及服務(wù)所在容器的ID號(hào);步驟4:服務(wù)注冊(cè)中心接收到由服務(wù)節(jié)點(diǎn)內(nèi)容器發(fā)送的服務(wù)注冊(cè)信息后,存儲(chǔ)服務(wù)注冊(cè)信息,并提取服務(wù)名稱(chēng)、服務(wù)版本號(hào)、服務(wù)所在容器的ID號(hào),并依據(jù)黑白名單規(guī)則,針對(duì)記錄在白名單中的客戶(hù)端,向它推送所有有關(guān)該注冊(cè)服務(wù)的服務(wù)信息;針對(duì)記錄在黑名單中的客戶(hù)端,則拒絕推送;步驟5:客戶(hù)端接收由服務(wù)注冊(cè)中心發(fā)送的服務(wù)名稱(chēng)、服務(wù)版本號(hào)、服務(wù)所在容器的ID號(hào)和服務(wù)所在容器的編號(hào),并將接收到的上述信息緩存至本地,保存在客戶(hù)端的服務(wù)列表中;所述服務(wù)列表,存儲(chǔ)關(guān)于某一項(xiàng)服務(wù)的服務(wù)名稱(chēng)、服務(wù)版本號(hào)、服務(wù)所在容器的ID號(hào)等;步驟6:當(dāng)客戶(hù)端有服務(wù)調(diào)用需求時(shí),從本地緩存中獲取服務(wù)列表,當(dāng)客戶(hù)端有服務(wù)調(diào)用需求時(shí),從本地緩存中獲取服務(wù)列表,綜合考慮客戶(hù)端調(diào)用需求、客戶(hù)端版本、調(diào)用服務(wù)的版本及調(diào)用服務(wù)的當(dāng)前版本更新情況,在服務(wù)列表中進(jìn)行篩選,確定唯一且合適的裝載調(diào)用服務(wù)的服務(wù)節(jié)點(diǎn)和容器;篩選具體包括:(1)根據(jù)服務(wù)名稱(chēng)和版本號(hào),從服務(wù)列表中篩選出符合要求的服務(wù);(2)在服務(wù)列表中,如果匹配到服務(wù)名稱(chēng),但是無(wú)法匹配版本號(hào),則選擇版本號(hào)最大的服務(wù)進(jìn)行匹配;(3)從篩選出的服務(wù)中,依據(jù)相應(yīng)的負(fù)載均衡算法邏輯,選擇出裝載該服務(wù)的唯一服務(wù)節(jié)點(diǎn)內(nèi)的容器,向篩選出的容器發(fā)送服務(wù)調(diào)用請(qǐng)求;特別地,步驟6中,客戶(hù)端本地緩存有關(guān)于某一項(xiàng)服務(wù)多個(gè)版本的信息,客戶(hù)端在服務(wù)調(diào)用過(guò)程中,能根據(jù)客戶(hù)端版本和服務(wù)調(diào)用需求,選擇合適的服務(wù)版本進(jìn)行調(diào)用;步驟7:客戶(hù)端根據(jù)經(jīng)步驟6篩選出的服務(wù),將服務(wù)的服務(wù)名稱(chēng)、服務(wù)版本號(hào)、服務(wù)所在容器的ID號(hào)形成服務(wù)調(diào)用請(qǐng)求,按照服務(wù)所在服務(wù)節(jié)點(diǎn)的IP地址和接口號(hào),將調(diào)用請(qǐng)求發(fā)送至對(duì)應(yīng)的服務(wù)節(jié)點(diǎn)處理;步驟8:服務(wù)節(jié)點(diǎn)接收到服務(wù)調(diào)用請(qǐng)求后,解析請(qǐng)求內(nèi)容,獲取欲調(diào)用服務(wù)所在容器的ID號(hào),并根據(jù)容器ID號(hào)選擇該服務(wù)所在的容器對(duì)服務(wù)調(diào)用請(qǐng)求進(jìn)行處理;步驟9:服務(wù)節(jié)點(diǎn)將服務(wù)調(diào)用請(qǐng)求發(fā)送至步驟8中已選擇的容器,由接收調(diào)用請(qǐng)求的容器根據(jù)請(qǐng)求信息中的服務(wù)名稱(chēng)及服務(wù)版本號(hào),找到容器中服務(wù)集內(nèi)對(duì)應(yīng)的服務(wù),執(zhí)行服務(wù)并將結(jié)果反饋至客戶(hù)端;步驟10:針對(duì)正在運(yùn)行的服務(wù)節(jié)點(diǎn),如欲向服務(wù)節(jié)點(diǎn)內(nèi)添加服務(wù)集或卸載服務(wù)集時(shí),由接收到請(qǐng)求的服務(wù)節(jié)點(diǎn)根據(jù)請(qǐng)求指令執(zhí)行容器的啟動(dòng)或關(guān)閉;在新添服務(wù)集和卸載服務(wù)集的過(guò)程中,以容器隔離新添的服務(wù)集與其他服務(wù)集、欲卸載的服務(wù)集與其他服務(wù)集的聯(lián)系,使客戶(hù)端對(duì)其他容器內(nèi)的服務(wù)集調(diào)用不會(huì)受到更新和卸載的影響。在應(yīng)用更新過(guò)程中需要新添服務(wù)集時(shí),服務(wù)節(jié)點(diǎn)從服務(wù)集倉(cāng)庫(kù)中下載服務(wù)集,按照服務(wù)集配置信息啟動(dòng)服務(wù)節(jié)點(diǎn)內(nèi)的容器,并加載新服務(wù)集至容器中;容器通過(guò)向注冊(cè)中心發(fā)送服務(wù)注冊(cè)信息,實(shí)現(xiàn)新版本服務(wù)的公開(kāi)發(fā)布;若是停止服務(wù)需要卸載服務(wù)集時(shí),首先,注冊(cè)中心從推送服務(wù)列表中刪除欲停止的服務(wù),并將最新的服務(wù)列表推送給所有客戶(hù)端,以確保之后不會(huì)有請(qǐng)求訪(fǎng)問(wèn)欲停止服務(wù)的新請(qǐng)求;然后,注冊(cè)中心通知服務(wù)節(jié)點(diǎn)停止服務(wù),當(dāng)服務(wù)節(jié)點(diǎn)接收到消息后,將停止服務(wù)所在的容器,并執(zhí)行銷(xiāo)毀容器的操作,包括停止服務(wù)的對(duì)外服務(wù)、取消在注冊(cè)中心內(nèi)的服務(wù)注冊(cè);進(jìn)一步地,當(dāng)服務(wù)升級(jí)后,客戶(hù)端仍能在未升級(jí)的情況下,正常繼續(xù)對(duì)服務(wù)的調(diào)用,不會(huì)因服務(wù)的更新而間斷服務(wù)的調(diào)用;在新版本服務(wù)添加成功后,依據(jù)客戶(hù)端版本與服務(wù)版本的區(qū)別,有不同的服務(wù)調(diào)用邏輯:若客戶(hù)端版本號(hào)與調(diào)用服務(wù)的老版本號(hào)一致,當(dāng)服務(wù)新版本發(fā)布后,客戶(hù)端按照版本號(hào)完全匹配優(yōu)先原則,依然直接調(diào)用老版本服務(wù);只有在服務(wù)老版本完全停止后,客戶(hù)端才會(huì)自動(dòng)訪(fǎng)問(wèn)新版本服務(wù);若客戶(hù)端版本號(hào)和調(diào)用服務(wù)的老版本號(hào)不一致,當(dāng)服務(wù)新版本發(fā)布后,客戶(hù)端直接獲取新版本服務(wù)集。本發(fā)明與其他技術(shù)方案相比較,具有有益效果:(1)本發(fā)明通過(guò)在服務(wù)節(jié)點(diǎn)內(nèi)設(shè)置多個(gè)容器,利用容器裝載不同種類(lèi)的服務(wù),也包括同一服務(wù)的不同版本,使不同種類(lèi)的服務(wù)、不同版本的服務(wù)之間相互隔離,保證多版本服務(wù)能在服務(wù)提供端的共存;(2)本發(fā)明在服務(wù)節(jié)點(diǎn)運(yùn)行時(shí),通過(guò)直接操控服務(wù)節(jié)點(diǎn)內(nèi)的容器啟動(dòng)或停止,執(zhí)行服務(wù)的添加或卸載,并利用容器的隔離性,實(shí)現(xiàn)新添服務(wù)或卸載服務(wù)能獨(dú)立于其他正常運(yùn)行的服務(wù),使服務(wù)的發(fā)布或停止不再經(jīng)過(guò)傳統(tǒng)服務(wù)發(fā)布的系統(tǒng)重啟步驟,減少服務(wù)發(fā)布或停止的時(shí)間,提高服務(wù)提供端的工作效率;(3)本發(fā)明通過(guò)在客戶(hù)端設(shè)置選擇邏輯,實(shí)現(xiàn)在多版本服務(wù)共存的環(huán)境中,客戶(hù)端的服務(wù)調(diào)用能自動(dòng)匹配到欲調(diào)用服務(wù)的最適合版本,減少服務(wù)升級(jí)過(guò)程中因新、老服務(wù)不兼容而導(dǎo)致需要人為控制客戶(hù)端訪(fǎng)問(wèn)的操作,減少服務(wù)升級(jí)、降級(jí)及服務(wù)發(fā)布的難度;附圖說(shuō)明圖1為本發(fā)明實(shí)施例中一種基于容器的服務(wù)多版本實(shí)現(xiàn)方法的實(shí)施結(jié)構(gòu)圖圖2為本發(fā)明實(shí)施例中服務(wù)節(jié)點(diǎn)內(nèi)的容器結(jié)構(gòu)圖圖3為本發(fā)明實(shí)施例中一種基于容器的服務(wù)多版本共存實(shí)現(xiàn)方法實(shí)施流程圖圖4本發(fā)明實(shí)施例中客戶(hù)端調(diào)用服務(wù)的流程示意圖具體實(shí)施例為使本發(fā)明的技術(shù)方案、技術(shù)目的及技術(shù)效果更清晰明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。圖1為本發(fā)明實(shí)施例中一種基于容器的服務(wù)多版本實(shí)現(xiàn)方法的實(shí)施結(jié)構(gòu)圖,具體包括服務(wù)端101、注冊(cè)中心102、客戶(hù)端103、服務(wù)節(jié)點(diǎn)1和服務(wù)節(jié)點(diǎn)2,服務(wù)節(jié)點(diǎn)1中包含容器1-1和容器1-2,服務(wù)節(jié)點(diǎn)2包含容器2-1和容器2-2;其中服務(wù)端與注冊(cè)中心相連,新服務(wù)的啟動(dòng)后,由服務(wù)端向注冊(cè)中心傳送該服務(wù)的注冊(cè)信息;注冊(cè)中心與客戶(hù)端連接,用于將已發(fā)布服務(wù)的信息傳送至客戶(hù)端存儲(chǔ);客戶(hù)端與服務(wù)端連接,一方面向服務(wù)端的服務(wù)節(jié)點(diǎn)發(fā)送服務(wù)調(diào)用請(qǐng)求,另一方面根據(jù)服務(wù)調(diào)用請(qǐng)求,從服務(wù)端獲取需要的服務(wù);所述容器存在于服務(wù)節(jié)點(diǎn)中,是指裝載服務(wù)集的服務(wù)單元;其中服務(wù)集是業(yè)務(wù)服務(wù)的集合,服務(wù)集的上傳、下載、版本管理由服務(wù)集倉(cāng)庫(kù)執(zhí)行;所述服務(wù)節(jié)點(diǎn)存在于服務(wù)端內(nèi),是裝載容器的服務(wù)應(yīng)用;所述服務(wù)端101用于向客戶(hù)端103提供服務(wù)接口,服務(wù)端101內(nèi)能包含多個(gè)服務(wù)節(jié)點(diǎn),一個(gè)服務(wù)節(jié)點(diǎn)內(nèi)能裝載多個(gè)容器,且一個(gè)服務(wù)節(jié)點(diǎn)以唯一的IP地址和服務(wù)端口號(hào)作為身份標(biāo)識(shí);一個(gè)容器內(nèi)裝載一種服務(wù),且每一個(gè)容器被分配有唯一的ID號(hào);所述注冊(cè)中心102是已發(fā)布服務(wù)的信息聚合區(qū),用于接收服務(wù)端發(fā)送的服務(wù)注冊(cè)信息;每一次應(yīng)用更新或停止導(dǎo)致的服務(wù)版本的變化,注冊(cè)中心以新添或刪除的方式,更新服務(wù)的注冊(cè)信息;所述客戶(hù)端103是服務(wù)調(diào)用端;客戶(hù)端調(diào)用服務(wù)時(shí),在多版本服務(wù)共存的環(huán)境下,按照預(yù)設(shè)選擇邏輯,在新版本服務(wù)發(fā)布后,能根據(jù)當(dāng)前客戶(hù)端的版本號(hào),自動(dòng)匹配最適合的服務(wù)版本進(jìn)行調(diào)用;圖2為本發(fā)明實(shí)施例中服務(wù)節(jié)點(diǎn)內(nèi)的容器結(jié)構(gòu)圖,服務(wù)節(jié)點(diǎn)內(nèi)包含兩類(lèi)容器,即基礎(chǔ)容器和業(yè)務(wù)容器;基礎(chǔ)容器中加載業(yè)務(wù)容器公用且不對(duì)外提供服務(wù)的服務(wù)集,是業(yè)務(wù)容器1、業(yè)務(wù)容器2、業(yè)務(wù)容器3運(yùn)行的基礎(chǔ)環(huán)境;業(yè)務(wù)容器在服務(wù)節(jié)點(diǎn)啟動(dòng)時(shí),由服務(wù)節(jié)點(diǎn)按照當(dāng)前需要發(fā)布的服務(wù)集配置信息,裝載服務(wù)集入相應(yīng)業(yè)務(wù)容器服務(wù)節(jié)點(diǎn)內(nèi)創(chuàng)建有多個(gè)業(yè)務(wù)容器,每個(gè)業(yè)務(wù)容器在創(chuàng)建時(shí)由服務(wù)節(jié)點(diǎn)通過(guò)容器ID庫(kù)提供唯一的ID號(hào);當(dāng)容器內(nèi)裝載入服務(wù)集后,自動(dòng)啟動(dòng)對(duì)服務(wù)集的發(fā)布操作;每一個(gè)業(yè)務(wù)容器內(nèi)只能裝載一種服務(wù)集,或同一種服務(wù)集的不同版本,使服務(wù)節(jié)點(diǎn)內(nèi)的不同服務(wù)集之間相互隔離;本發(fā)明實(shí)施例中有服務(wù)集1和服務(wù)集2,其中服務(wù)集1的版本有V1.0和V2.0,按照容器裝載單一服務(wù)的原則,容器1中只裝載服務(wù)集1-V1.0,容器2中只裝載服務(wù)集1-V2.0,容器3中只裝載服務(wù)集2-V1.0;圖3為本發(fā)明實(shí)施例中一種基于容器的服務(wù)多版本共存實(shí)現(xiàn)方法實(shí)施流程圖,本發(fā)明實(shí)施例在服務(wù)端配置多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)服務(wù)節(jié)點(diǎn)內(nèi)配置多個(gè)容器,每個(gè)容器裝載不同的服務(wù)集,用以區(qū)分不同的服務(wù)類(lèi)型和同一類(lèi)型服務(wù)的不同版本;同時(shí)利用不同容器裝載不同服務(wù),使各個(gè)服務(wù)之間相互隔離,使新版本服務(wù)和舊版本服務(wù)得以區(qū)分;在本發(fā)明實(shí)施例中,服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)內(nèi)設(shè)有業(yè)務(wù)容器1、業(yè)務(wù)容器2,其中業(yè)務(wù)容器1中裝載服務(wù)集1-V1.0,業(yè)務(wù)容器2中裝載服務(wù)集2-V1.0,現(xiàn)在因應(yīng)用升級(jí),服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)的服務(wù)集1需要升級(jí)版本到2.0,并由注冊(cè)中心對(duì)新版服務(wù)進(jìn)行發(fā)布,具體步驟有:步驟301:注冊(cè)中心向服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)發(fā)送“發(fā)布服務(wù)集1的V2.0版”的消息:步驟302:服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)接收到服務(wù)發(fā)布消息后,經(jīng)消息內(nèi)容解析后獲取服務(wù)集1-V2.0的服務(wù)名稱(chēng),根據(jù)服務(wù)名稱(chēng)從服務(wù)集倉(cāng)庫(kù)中下載服務(wù)集;步驟303:服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)創(chuàng)建并啟動(dòng)一個(gè)容器,根據(jù)容器ID庫(kù)為新建的業(yè)務(wù)容器編號(hào)為“3”;業(yè)務(wù)容器3裝載在服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)內(nèi);步驟304:服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)將服務(wù)集1-V2.0裝載入業(yè)務(wù)容器3中,因?yàn)榉?wù)集1-V1.0和服務(wù)集1-V2.0分布在不同的業(yè)務(wù)容器中,因而即將發(fā)布的服務(wù)集1-V2.0和已經(jīng)發(fā)布的服務(wù)集1-V1.0之間相互隔離,并以容器ID作為區(qū)分;步驟305:服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)提取服務(wù)集1-V2.0的服務(wù)名稱(chēng)、服務(wù)版本號(hào)、容器ID、服務(wù)節(jié)點(diǎn)IP及端口號(hào)形成注冊(cè)消息,發(fā)送至注冊(cè)中心內(nèi)存儲(chǔ),本發(fā)明實(shí)施例中的注冊(cè)消息內(nèi)容具體如下表:表1:服務(wù)集1的注冊(cè)信息服務(wù)名稱(chēng)服務(wù)版本號(hào)容器ID服務(wù)節(jié)點(diǎn)IP及端口號(hào)服務(wù)集1V2.03192.168.1.100:9998步驟306:由注冊(cè)中心根據(jù)服務(wù)名稱(chēng)判斷客戶(hù)端是否有訂閱過(guò)該服務(wù)的記錄,若客戶(hù)端訂閱過(guò)相同服務(wù),則將本次更新后的服務(wù)集信息發(fā)送至客戶(hù)端,加入客戶(hù)端的服務(wù)列表,緩存在客戶(hù)端本地;若客戶(hù)端沒(méi)有訂閱過(guò)相同服務(wù),則在之后客戶(hù)端有訂閱需求時(shí)候,將更新后的服務(wù)集信息發(fā)送至客戶(hù)端;服務(wù)集1經(jīng)過(guò)版本升級(jí)后,現(xiàn)在客戶(hù)端本地的服務(wù)列表中如下:表2:客戶(hù)端本地的服務(wù)列表信息服務(wù)名稱(chēng)服務(wù)版本號(hào)容器ID服務(wù)節(jié)點(diǎn)IP及端口號(hào)服務(wù)集1V1.01192.168.1.100:9998服務(wù)集2V1.02192.168.1.100:9998服務(wù)集1V2.03192.168.1.100:9998V2.0版服務(wù)集1的信息和V1.0版服務(wù)集1的信息現(xiàn)同時(shí)存在于客戶(hù)端本地的服務(wù)列表中時(shí),客戶(hù)端現(xiàn)欲調(diào)用服務(wù)集1,具體步驟參閱圖4本發(fā)明實(shí)施例中客戶(hù)端調(diào)用服務(wù)的流程示意圖,包括:步驟401:客戶(hù)端根據(jù)欲調(diào)用服務(wù)的名稱(chēng),在服務(wù)列表中進(jìn)行完全匹配,匹配結(jié)果如下表:服務(wù)名稱(chēng)服務(wù)版本號(hào)容器ID服務(wù)節(jié)點(diǎn)IP及端口號(hào)服務(wù)集1V1.01192.168.1.100:9998服務(wù)集1V2.03192.168.1.100:9998步驟402:客戶(hù)端根據(jù)欲調(diào)用服務(wù)的版本號(hào),在服務(wù)列表進(jìn)行匹配;本發(fā)明實(shí)施例中沒(méi)有明確規(guī)定調(diào)用服務(wù)的版本號(hào),返回最新版服務(wù)的信息,匹配結(jié)果如下:服務(wù)名稱(chēng)服務(wù)版本號(hào)容器ID服務(wù)節(jié)點(diǎn)IP及端口號(hào)服務(wù)集1V2.03192.168.1.100:9998步驟403:在分布式服務(wù)分布環(huán)境中,同一版本服務(wù)會(huì)分布在不同服務(wù)節(jié)點(diǎn)的業(yè)務(wù)容器內(nèi),經(jīng)過(guò)服務(wù)篩選后,服務(wù)篩選結(jié)果可能不止一條;客戶(hù)端需要在調(diào)用前根據(jù)路由規(guī)則,從步驟402中過(guò)濾的服務(wù)列表中,確定唯一一個(gè)服務(wù),按照服務(wù)列表中記錄的服務(wù)節(jié)點(diǎn)IP及端口號(hào),將服務(wù)名稱(chēng)、服務(wù)版本號(hào)形成服務(wù)調(diào)用消息,按照服務(wù)節(jié)點(diǎn)的IP地址(192.168.1.100)和端口號(hào)(9998)發(fā)送至相應(yīng)的服務(wù)節(jié)點(diǎn);步驟404:服務(wù)節(jié)點(diǎn)(192.168.1.100:9998)接收到服務(wù)調(diào)用請(qǐng)求,解析內(nèi)容獲取請(qǐng)求中的業(yè)務(wù)容器ID號(hào),并將服務(wù)調(diào)用請(qǐng)求交由對(duì)應(yīng)的業(yè)務(wù)容器處理;在本發(fā)明實(shí)施例中,由業(yè)務(wù)容器3處理服務(wù)調(diào)用請(qǐng)求;步驟405:業(yè)務(wù)容器3根據(jù)調(diào)用請(qǐng)求中的服務(wù)名稱(chēng)(服務(wù)集1),找到服務(wù)并執(zhí)行,并將結(jié)果返回給客戶(hù)端;所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
嘉祥县| 普定县| 西华县| 南木林县| 南康市| 湄潭县| 东城区| 久治县| 鲁甸县| 信宜市| 那坡县| 曲阳县| 浠水县| 洞头县| 大渡口区| 剑河县| 滦南县| 临湘市| 高台县| 石景山区| 巴楚县| 新和县| 台湾省| 开远市| 和平区| 齐河县| 石家庄市| 习水县| 且末县| 建平县| 大新县| 蓬安县| 南投县| 海晏县| 迁西县| 鹤峰县| 克拉玛依市| 上犹县| 河南省| 永城市| 塘沽区|