本發(fā)明屬于虛擬卡口技術(shù)領(lǐng)域,特別涉及一種基于容器云技術(shù)的虛擬卡口系統(tǒng)及其服務(wù)創(chuàng)建方法。
背景技術(shù):
近年來,隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,國內(nèi)機(jī)動(dòng)車數(shù)量迅速增長,在城市的重要出入口、重要的區(qū)域、以及車流量大的道路上均需要安裝虛擬卡口系統(tǒng),在平安城市中,有大量的攝像頭需要關(guān)聯(lián)虛擬卡口服務(wù),由于虛擬卡口對(duì)主機(jī)的IO和CPU消耗非常大,因此單機(jī)版的虛擬卡口能力非常有限,一般只能關(guān)聯(lián)5個(gè)攝像頭,因此就需要啟用集群技術(shù)來關(guān)聯(lián)更多的攝像頭。
現(xiàn)有技術(shù)中常常引入一般的集群技術(shù),在服務(wù)創(chuàng)建過程中需要人工在需要部署的主機(jī)上安裝虛擬卡口服務(wù)和虛擬卡口服務(wù)依賴,既浪費(fèi)了大量的時(shí)間,而且卸載也不方便、每一次的部署都需要手動(dòng)在主機(jī)上操作、批量的虛擬卡口服務(wù)更新和停止也非常繁瑣。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了克服上述現(xiàn)有技術(shù)的不足,提供了一種基于容器云技術(shù)的虛擬卡口系統(tǒng),本發(fā)明簡化了主機(jī)部署的過程、操作方便、在服務(wù)創(chuàng)建過程中無需人工在需要部署的主機(jī)上安裝虛擬卡口服務(wù)和虛擬卡口服務(wù)依賴,節(jié)省了時(shí)間。
為實(shí)現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)措施:
一種基于容器云技術(shù)的虛擬卡口系統(tǒng),包括docker存儲(chǔ)單元、服務(wù)集群單元以及web服務(wù)端,其中,
docker存儲(chǔ)單元,用于存儲(chǔ)由虛擬卡口服務(wù)以及虛擬卡口服務(wù)的依賴共同打包的docker鏡像;
服務(wù)集群單元,內(nèi)部包括多個(gè)服務(wù)器,所述服務(wù)器用于接收來自所述docker存儲(chǔ)單元的docker鏡像,所述服務(wù)集群單元與docker存儲(chǔ)單元之間雙向通信連接;
web服務(wù)端,用于發(fā)出創(chuàng)建虛擬卡口服務(wù)的命令,所述web服務(wù)端與所述服務(wù)集群單元之間雙向通信。
優(yōu)選的,多個(gè)所述服務(wù)器之間彼此獨(dú)立存在,多個(gè)服務(wù)器均通過一個(gè)公共接口與docker存儲(chǔ)單元、web服務(wù)端之間雙向通信連接。
本發(fā)明還提供了基于容器云技術(shù)的虛擬卡口系統(tǒng)的服務(wù)創(chuàng)建方法,包括以下步驟:
S1、將所述虛擬卡口服務(wù)以及虛擬卡口服務(wù)的依賴共同打包成docker鏡像;
S2、將所述docker鏡像上傳至所述docker存儲(chǔ)單元;
S3、所述web服務(wù)端向服務(wù)集群單元發(fā)出創(chuàng)建虛擬卡口服務(wù)的命令;
S4、若所述web服務(wù)端在規(guī)定時(shí)間內(nèi)獲取服務(wù)集群單元返回的信息,則表示創(chuàng)建虛擬卡口服務(wù)成功,將信息存入數(shù)據(jù)庫;若在規(guī)定時(shí)間內(nèi)沒有獲取服務(wù)集群單元返回的信息,則提示用戶重新創(chuàng)建虛擬卡口服務(wù)。
優(yōu)選的,所述步驟S3具體包括以下步驟:
S31、所述web服務(wù)端根據(jù)服務(wù)集群單元提供的網(wǎng)絡(luò)地址,調(diào)用服務(wù)集群單元的接口;
S32、所述服務(wù)集群單元自動(dòng)查找內(nèi)部空閑的服務(wù)器來創(chuàng)建虛擬卡口服務(wù)。
優(yōu)選的,所述信息包括所述服務(wù)器的網(wǎng)絡(luò)地址和ID號(hào)。
進(jìn)一步的,當(dāng)所述虛擬卡口服務(wù)需要更新時(shí),直接將虛擬卡口服務(wù)替換成最新的虛擬卡口服務(wù),將最新的虛擬卡口服務(wù)以及最新的虛擬卡口服務(wù)的依賴共同打包成docker鏡像上傳至所述docker存儲(chǔ)單元。
進(jìn)一步的,所述docker存儲(chǔ)單元的容量不足時(shí),直接刪除舊版本的docker鏡像。
進(jìn)一步的,所述規(guī)定時(shí)間為2s~20s。
本發(fā)明的有益效果在于:
1)、本發(fā)明摒棄了傳統(tǒng)的通過人工在需要部署的主機(jī)上安裝虛擬卡口服務(wù)和虛擬卡口服務(wù)依賴,本發(fā)明的服務(wù)創(chuàng)建首先通過將所述虛擬卡口服務(wù) 以及虛擬卡口服務(wù)的依賴打包成docker鏡像,將所述docker鏡像上傳至docker存儲(chǔ)單元;所述web服務(wù)端向服務(wù)集群單元發(fā)出創(chuàng)建虛擬卡口服務(wù)的命令;若所述web服務(wù)端在規(guī)定時(shí)間內(nèi)獲取服務(wù)集群單元返回的信息,則表示創(chuàng)建虛擬卡口服務(wù)成功,將信息存入數(shù)據(jù)庫;若在規(guī)定時(shí)間內(nèi)沒有獲取服務(wù)集群單元返回的信息,則提示用戶重新創(chuàng)建虛擬卡口服務(wù)。因此本發(fā)明簡化了主機(jī)部署的過程、操作方便、在服務(wù)創(chuàng)建過程中無需人工在需要部署的主機(jī)上安裝虛擬卡口服務(wù)和虛擬卡口服務(wù)依賴,整個(gè)虛擬卡口的添加過程自動(dòng)化,節(jié)省了大量的時(shí)間。
2)、所述服務(wù)集群單元是基于容器云技術(shù)所創(chuàng)建,便于服務(wù)的創(chuàng)建和更新;當(dāng)所述虛擬卡口服務(wù)需要更新時(shí),直接將虛擬卡口服務(wù)替換成最新的虛擬卡口服務(wù),將最新的虛擬卡口服務(wù)以及最新的虛擬卡口服務(wù)的依賴共同打包成docker鏡像上傳至所述docker存儲(chǔ)單元,因此本發(fā)明的虛擬卡口服務(wù)更新方便;所述docker存儲(chǔ)單元的容量不足時(shí),直接刪除舊版本的docker鏡像,方便了虛擬卡口服務(wù)以及虛擬卡口服務(wù)的依賴的卸載。
附圖說明
圖1為本發(fā)明的基于容器云技術(shù)的虛擬卡口系統(tǒng)的框圖原理圖;
圖2為本發(fā)明的基于容器云技術(shù)的虛擬卡口系統(tǒng)的服務(wù)創(chuàng)建方法的流程圖;
圖3為本發(fā)明的基于容器云技術(shù)的虛擬卡口系統(tǒng)的服務(wù)創(chuàng)建方法的具體流程圖;
圖4為本發(fā)明的信息交互圖。
10—docker存儲(chǔ)單元 20—服務(wù)集群單元 30—web服務(wù)端
具體實(shí)施方式
下面將結(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ù)的范圍。
如圖1所示,一種基于容器云技術(shù)的虛擬卡口系統(tǒng),包括docker存儲(chǔ) 單元10、服務(wù)集群單元20、以及web服務(wù)端30,所述docker存儲(chǔ)單元10,用于存儲(chǔ)由虛擬卡口服務(wù)以及虛擬卡口服務(wù)的依賴共同打包的docker鏡像;所述服務(wù)集群單元20內(nèi)部包括多個(gè)服務(wù)器,所述服務(wù)器用于接收來自所述docker存儲(chǔ)單元10的docker鏡像,所述服務(wù)集群單元20與docker存儲(chǔ)單元10之間雙向通信連接;所述web服務(wù)端30用于發(fā)出創(chuàng)建虛擬卡口服務(wù)的命令,所述web服務(wù)端30與所述服務(wù)集群單元20之間雙向通信。
所述服務(wù)集群單元20的多個(gè)所述服務(wù)器之間彼此獨(dú)立存在,多個(gè)服務(wù)器均通過一個(gè)公共接口與docker存儲(chǔ)單元10、web服務(wù)端30之間雙向通信連接,即為所述服務(wù)集群單元20是基于容器云技術(shù)所創(chuàng)建的,服務(wù)集群單元20上編寫有unit文件,便于服務(wù)的創(chuàng)建和更新,操作簡單方便。
如圖2所示,基于容器云技術(shù)的虛擬卡口系統(tǒng)的服務(wù)創(chuàng)建方法,包括以下步驟:
S1、將所述虛擬卡口服務(wù)以及虛擬卡口服務(wù)的依賴共同打包成docker鏡像;
S2、將所述docker鏡像上傳至所述docker存儲(chǔ)單元10;
S3、所述web服務(wù)端30向服務(wù)集群單元20發(fā)出創(chuàng)建虛擬卡口服務(wù)的命令;
S4、若所述web服務(wù)端30在規(guī)定時(shí)間內(nèi)獲取服務(wù)集群單元20返回的信息,則表示創(chuàng)建虛擬卡口服務(wù)成功,將信息存入數(shù)據(jù)庫;若在規(guī)定時(shí)間內(nèi)沒有獲取服務(wù)集群單元20返回的信息,則提示用戶重新創(chuàng)建虛擬卡口服務(wù)。
如圖3所示,基于容器云技術(shù)的虛擬卡口系統(tǒng)的服務(wù)創(chuàng)建方法,步驟S3具體包括以下步驟:
S31、所述web服務(wù)端30根據(jù)服務(wù)集群單元20提供的網(wǎng)絡(luò)地址,調(diào)用服務(wù)集群單元20的接口;
S32、所述服務(wù)集群單元20自動(dòng)查找內(nèi)部空閑的服務(wù)器來創(chuàng)建虛擬卡口服務(wù)。
在平安城市的卡口系統(tǒng)當(dāng)中,當(dāng)需要區(qū)域布控的時(shí)候,首先需要去選擇需要布控的攝像頭,再添加為虛擬卡口,添加完虛擬卡口之后,后臺(tái)會(huì)調(diào)用 服務(wù)集群單元20提供的Restful接口,服務(wù)集群單元20去docker存儲(chǔ)單元10拉取一個(gè)docker鏡像,然后在服務(wù)集群單元20中創(chuàng)建一個(gè)服務(wù),同時(shí)后臺(tái)會(huì)記錄服務(wù)的ID號(hào)。當(dāng)所述虛擬卡口服務(wù)需要更新時(shí),直接將虛擬卡口服務(wù)替換成最新的虛擬卡口服務(wù),將最新的虛擬卡口服務(wù)以及最新的虛擬卡口服務(wù)的依賴共同打包成docker鏡像上傳至所述docker存儲(chǔ)單元10,然后運(yùn)行服務(wù)集群單元20的更新命令,集群便會(huì)自動(dòng)下載最新的docker鏡像,所述docker存儲(chǔ)單元10的容量不足時(shí),直接刪除舊版本的docker鏡像。
如圖4所示,容器云平臺(tái)用于對(duì)容器進(jìn)行管理調(diào)度,軟件定義資源使用容器云技術(shù)對(duì)硬件環(huán)境進(jìn)行虛擬化,軟件定義資源用于實(shí)現(xiàn)容器云平臺(tái),對(duì)容器進(jìn)行管理調(diào)度和生命周期維護(hù),容器云平臺(tái)提供的API接口,服務(wù)用于創(chuàng)建具體的各個(gè)容器,承擔(dān)各種不同的功能,如web服務(wù)、數(shù)據(jù)庫服務(wù)、日志服務(wù)等,服務(wù)中對(duì)外開放的服務(wù)接口用來組成API接口用于為用戶提供服務(wù)。