【摘? 要】隨著信息技術的發(fā)展,在大數(shù)據(jù)時代的背景下對于信息的讀寫速度和網(wǎng)絡的移植功能有了更高的要求,一些網(wǎng)絡系統(tǒng)的設計也由單一的場景和應用向著“一平臺,多場景”的微應用系統(tǒng)設計轉(zhuǎn)變。在技術方面,要實現(xiàn)微服務的轉(zhuǎn)變需要依托可移植的網(wǎng)絡容器。本文探討了基于DOCKER這一應用容器引擎、基于SOA的DUBBO架構(gòu)的治理框架實現(xiàn)將個體應用分解轉(zhuǎn)變成獨立的微服務。同時利用容器協(xié)助形成微服務的自動安置和進一步的擴展。
【關鍵詞】微服務;DOCKER容器;SOA架構(gòu)
引言
互聯(lián)網(wǎng)的多維式發(fā)展讓網(wǎng)站和應用的開發(fā)模式不再單一,傳統(tǒng)的老式計算機軟件開發(fā)模式在現(xiàn)代的網(wǎng)絡環(huán)境中的弊端逐漸顯現(xiàn)。在現(xiàn)代化模式下,開發(fā)模式向敏捷式開發(fā)和微服務模式過渡。微服務是對個體應用中的服務模塊和組件進一步的完善和拆分,使其成為獨立于應用存在的服務結(jié)構(gòu),這樣的分解結(jié)構(gòu)也大大方便了現(xiàn)代網(wǎng)絡模式下軟件的開發(fā)和維護。
1.DOCKER容器技術概述
Docker容器是一款基于GO語言和LXC的高級引擎,具有易操作、隔離性高、啟動快等性質(zhì)。而且基于DOCKER的微服務部署不用考慮資源耗費量的問題,因為在DOCKER容器中可以實現(xiàn)部署迅速、移植操作、便于管理和服務共享等功能,只需要進行單次編譯就可以移植到其他平臺進行操作。此外,DOCKER的管理系統(tǒng)有很強的規(guī)劃性,還能達到資源共享的目的。隨著DOCKER容器核心技術的進步,依賴于DOCKER的微服務的功能也將增加。
1.1 DOCKER的技術實現(xiàn)
DOCKER依賴LXC實現(xiàn)分布式運行的功能,主要包括命名空間和群組控制兩個方面。命名空間具有很強的隔離性,幫助程序運行時提供獨立的空間,避免了各個系統(tǒng)運行過程中的干擾問題。群組控制負責控制不同DOCKER運行中所需的內(nèi)存和CPU,不僅能實現(xiàn)堆運行進程的實時監(jiān)管,還能讓網(wǎng)絡資源利用率實現(xiàn)最大化。另外,群組控制能依據(jù)DOCKER的重要程度合理安排控制排序,形成合理的資源分配的程序運行架構(gòu)。
1.2 DOCKER容器的優(yōu)勢
由于特殊的技術原理支撐,DOCKER的優(yōu)勢也相對明顯。首先它的秒級啟動功能就為整個系統(tǒng)的運行和操作提供了極大的便利條件,另外,DOCKER易于架構(gòu)的優(yōu)勢讓資源的分配率更合理,每個主機構(gòu)建的DOCKER越多,整個系統(tǒng)的運行效率就越高。DOCKER容器的具體優(yōu)勢體現(xiàn)如下:
(1)節(jié)省時間節(jié)約成本。DOCKER通過直接操作主機的內(nèi)核,達到了程序運行時占用網(wǎng)絡資源小、運行快的節(jié)約目的,運行空間也比傳統(tǒng)的虛擬機擴大了幾千倍,因此運行成本大大減少。
(2)更高效。DOCKER單次運行就能在平臺間移植操作的特性,縮短了程序的開發(fā)和測試時間,提高了內(nèi)存和CPU的利用度,保證了程序的高效運行。
(3)易于管理。DOCKER便于查看和接收信息指令,而且當系統(tǒng)發(fā)生故障的時,能通過觀察指令信息來確定故障范圍,因此數(shù)據(jù)管理更方便,故障修復更容易。
2.DOCKER虛擬化技術
DOCKER基于LINUX技術的特性讓整個系統(tǒng)實現(xiàn)了操作虛擬化,每個用戶都在隔離的狀態(tài)下對系統(tǒng)進行操作,并且能共享和記錄每個程序中代碼間的關聯(lián),形成方便快速操作的新的構(gòu)建。微服務的實現(xiàn)則是通過DOCKER把拆分后的應用程序移植到LINUX上面實現(xiàn)的,基于DOCKER容器的微服務程序具有諸多優(yōu)勢。
2.1節(jié)省網(wǎng)絡資源的優(yōu)勢
微服務在DOCKER容器中的實現(xiàn)是通過在程序運行中建立分散形式的應用,再投射到DOCKER容器上,整個程序運行的環(huán)境被包括在DOCKER容器內(nèi),不僅對網(wǎng)絡空間的占用率減少,也減少了一大部分網(wǎng)絡資源的占用。
2.2基于DOCKER容器微服務環(huán)境的優(yōu)勢
DOCKER容器內(nèi)有足夠的空間環(huán)境支持程序的運行,因此省略了后期對程序的運行和維護,只需要維護好負責運行DOCKER的虛擬機即可。
2.3高效率的優(yōu)勢
DOCKER能在一秒內(nèi)實現(xiàn)程序服務的啟動和迅速部署。一般在擁擠的網(wǎng)絡環(huán)境下,需要迅速在最短的時間里擴充和維護服務器來容納大流量,而在DOCKER容器中只需要一秒就能達到擴充容量,以更快速、更高效、更敏捷的程序支撐擁擠的網(wǎng)絡環(huán)境。
3.基于DOCKER的DUBBO應用
DOCKER容器要想對微服務進行部署,就要求微服務對軟件程序進行拆分,形成獨立的服務機制,讓這些服務系統(tǒng)可以獨立升級、快速部署,同時讓各個應用達到運行所需的敏捷力和自我管理能力?;谶@一需要,微服務在拆分服務機制時就需要DUBBO框架的支持。DUBBO是一種開源的分布式微服務框架,并且結(jié)合了ZOOKEPPER作為整個框架的服務注冊站點,DUBBO和ZOOKEPPER的組合不僅能完成服務注冊,還能發(fā)現(xiàn)和均衡軟負載。
本文探討了使用Dockerfile制作鏡像,構(gòu)建基于Docker的Dubbo框架,如圖 1 所示。
架構(gòu)中的Nginx的作用是支撐大流量的同時訪問,并且對這些訪問做出快速的響應和處理,在特殊情況下還能當做負載均衡服務器提供外部服務;Provider Cluster Node是整個框架中為服務機制提供注冊的一環(huán),在這一環(huán)節(jié)中,需要把所能提供的服務提前注冊到注冊站,以方便服務使用者隨時調(diào)取服務;Zookepper Cluster Node:所有的Zookepper都不分等級,但是會隨機選擇某個點,使其成為Leader,在程序運行的時候,如果有節(jié)點宕機,則舍棄該節(jié)點;Dubbo Monitor是實施監(jiān)控的一環(huán),這一環(huán)負責向管理人員展示整個DOCKER容器的運營狀況和各環(huán)節(jié)服務調(diào)取的狀態(tài)。
該試驗方法把整個應用拆分成了單一獨立的微服務,并且把所有服務都放置于DOCKER容器內(nèi),而微服務和服務使用者之間則通過ZOOKEPPER的各個節(jié)點進行連接。當網(wǎng)絡在同一時間出現(xiàn)大流量和訪問量的時候,Nginx系統(tǒng)可以通過負載手段來均衡一部分的訪問量。各個環(huán)節(jié)之間的合作模擬形成了基于DOCKER容器的微服務框架的搭建。本方法既體現(xiàn)了微服務之間節(jié)點的低耦合性,又體現(xiàn)了資源的高效利用和服務模塊的快速部署。
4.結(jié)束語
盡管在應用信息技術的發(fā)展中,微服務的發(fā)展還沒有完全成熟,但是與DOCKER容器的組合無疑讓微服務有了更高效的運行結(jié)構(gòu)。在整個框架中,既能實現(xiàn)動態(tài)注冊和獲取服務,還能遠程調(diào)取服務,滿足了服務消費者的一切需求。而且通過DOBBO平臺可以實現(xiàn)迅速部署,在整個運行過程中不至于對網(wǎng)絡資源造成大規(guī)模浪費,還可以滿足應用不斷擴大規(guī)模的需要,就算如此,程序啟動時長和服務部署難度也不會隨之增加。
在數(shù)據(jù)處理方面,基于DOCKER容器的微服務也有速率高的優(yōu)勢,高效的讀寫速度讓這一結(jié)合框架具備微服務必須具備的數(shù)據(jù)儲存和調(diào)取等功能,且為這些數(shù)據(jù)的儲存和服務的調(diào)取提供了安全性較高的容器環(huán)境。
參考文獻
[1]張麗敏, 高晶, 李務斌, et al. 微服務環(huán)境下容器編排可視化實踐研究[J]. 計算機工程與科學, 2019(8):1366-1373.
[2]張瑞林, 吳學敏. Docker容器技術在后端服務設計中的應用[J]. 電腦知識與技術:學術版, 2019(5):281-282.
[3]孫瓊, 羅光峰. 新一代運營系統(tǒng)中持續(xù)交付平臺的實現(xiàn)[J]. 電信技術, 2017(3):25-29.
[4]張禮慶, 郭棟, 吳紹嶺, et al. 一種最大化內(nèi)存共享與最小化運行時環(huán)境的超輕量級容器[J]. 計算機研究與發(fā)展, 2019, 56(7):1545-1555.
作者介紹:梁純(1979.12-),女,漢族,湖北武漢人,計算機碩士,講師,研究方向為軟件設計,面向微服務架構(gòu)。