0 引言
智慧校園公共軟件平臺(tái)主要包括統(tǒng)一認(rèn)證、統(tǒng)一門戶、數(shù)據(jù)管理平臺(tái)三大部分,其中統(tǒng)一門戶與新興的網(wǎng)上辦事大廳呈現(xiàn)融合態(tài)勢(shì),發(fā)展形成融合服務(wù)門戶,并具備移動(dòng)端服務(wù)能力。隨著智慧校園上述平臺(tái)的功能不斷豐富,軟件架構(gòu)也愈加復(fù)雜,傳統(tǒng)的單體服務(wù)架構(gòu)在快速響應(yīng)業(yè)務(wù)變更、獨(dú)立維護(hù)升級(jí)、高效部署擴(kuò)容方面的不足逐漸顯現(xiàn)。微服務(wù)架構(gòu)是近幾年新興的一種軟件設(shè)計(jì)架構(gòu),由傳統(tǒng)的單體架構(gòu)基于服務(wù)化理念發(fā)展而來,其核心思想是將整個(gè)業(yè)務(wù)系統(tǒng)拆分為相對(duì)獨(dú)立的業(yè)務(wù)模塊,各個(gè)微服務(wù)都可以獨(dú)立開發(fā)、獨(dú)立測(cè)試、獨(dú)立部署、獨(dú)立運(yùn)行、獨(dú)立運(yùn)維[;能夠快速響應(yīng)業(yè)務(wù)需求變化,從而提升運(yùn)維質(zhì)量,降低運(yùn)維成本,提高資源利用率,實(shí)現(xiàn)能力共享[2]。其架構(gòu)示意圖如圖1所示。
1技術(shù)發(fā)展趨勢(shì)
1.1 微服務(wù)架構(gòu)
微服務(wù)架構(gòu)是2015年左右隨著互聯(lián)網(wǎng)應(yīng)用的蓬勃發(fā)展逐漸興起的。傳統(tǒng)的單體架構(gòu)在系統(tǒng)升級(jí)時(shí)需要中斷業(yè)務(wù)部署服務(wù)器端應(yīng)用程序的新版本。微服務(wù)通過標(biāo)準(zhǔn)化的業(yè)務(wù)API實(shí)現(xiàn)功能,采用松耦合的設(shè)計(jì)原則,允許服務(wù)的所有者自由實(shí)現(xiàn)并更改基于API的數(shù)據(jù)處理或者組合服務(wù)系統(tǒng),消費(fèi)者不會(huì)受到服務(wù)內(nèi)部實(shí)現(xiàn)變化的影響[3]。同時(shí),微服務(wù)架構(gòu)可以根據(jù)應(yīng)用的需求動(dòng)態(tài)擴(kuò)充服務(wù)資源,具有很強(qiáng)的伸縮性[4];由于各模塊之間相互獨(dú)立,當(dāng)架構(gòu)中某些模塊產(chǎn)生故障時(shí),其他模塊仍可正常運(yùn)行,具有很高的容錯(cuò)性[5]。目前主要的微服務(wù)開發(fā)框架包括Dubbo 和 Spring Cloud 等,Spring Cloud以豐富的組件工具和更完善的生態(tài)體系成為了業(yè)界主流,能方便地構(gòu)建健壯的分布式應(yīng)用,處理服務(wù)注冊(cè)發(fā)現(xiàn)、配置管理、負(fù)載均衡、熔斷等常見問題。SpringCloud支撐了微服務(wù)應(yīng)用的開發(fā),容器技術(shù)則很好地適配了微服務(wù)應(yīng)用的部署。容器可以把應(yīng)用及其依賴封裝到一個(gè)輕量級(jí)、可移植的鏡像文件中,鏡像保存著容器運(yùn)行所需的運(yùn)行環(huán)境及其配置信息[6]。Docker是目前主流的開源容器引擎,具有良好的輕量化、隔離性和高資源利用率的特征。在大規(guī)模復(fù)雜應(yīng)用場(chǎng)景下,容器的管理工作也會(huì)變得更加困難,可以依靠Kubernetes(簡(jiǎn)稱K8S)進(jìn)行容器管理,K8S是一種容器編排工具,可以快速進(jìn)行容器部署調(diào)度和節(jié)點(diǎn)集群擴(kuò)展。另外還可以使用Rancher快速搭建K8S集群并實(shí)現(xiàn)K8S的圖形化界面操作,進(jìn)一步降低微服務(wù)系統(tǒng)的運(yùn)維管理難度。
圖1微服務(wù)架構(gòu)示意圖
1.2智慧校園公共軟件平臺(tái)
智慧校園公共軟件平臺(tái)主要包括三項(xiàng)。
1)統(tǒng)一認(rèn)證平臺(tái)。統(tǒng)一認(rèn)證平臺(tái)可實(shí)現(xiàn)用戶在系統(tǒng)間的單點(diǎn)登錄功能,解決的是傳統(tǒng)模式下多個(gè)應(yīng)用采用不同界面和用戶信息進(jìn)行登錄的問題,主流的技術(shù)手段是通過CAS、LDAP、OAuth等協(xié)議使各系統(tǒng)均通過統(tǒng)一認(rèn)證服務(wù)器進(jìn)行身份校驗(yàn),同時(shí)為不同用戶分配相應(yīng)的信息服務(wù)權(quán)限,既可以保證智慧校園的整體安全性,又凸顯了智慧校園精細(xì)化服務(wù)的特點(diǎn)[7]。
2)統(tǒng)一門戶。統(tǒng)一門戶是第三方應(yīng)用的匯聚平臺(tái),使得用戶通過一個(gè)入口即可快速訪問所有應(yīng)用。近幾年隨著政務(wù)數(shù)字化建設(shè)逐漸發(fā)展起來的網(wǎng)上辦事大廳也在高校中逐漸普及,主要技術(shù)路線是通過Activity、Flowable等流程引擎,基于BPMN等國(guó)際標(biāo)準(zhǔn),通過圖形化操作界面快速構(gòu)建流程類的線上服務(wù)。網(wǎng)上辦事大廳在發(fā)展過程中逐漸和統(tǒng)一門戶融合,形成新形態(tài)的融合服務(wù)門戶,方便了用戶的訪問。
3)數(shù)據(jù)管理平臺(tái)。數(shù)據(jù)管理平臺(tái)是實(shí)現(xiàn)數(shù)據(jù)共享和數(shù)據(jù)分析的基礎(chǔ)工具軟件,主要功能是實(shí)現(xiàn)數(shù)據(jù)的采集、清洗、管理、開放、分析等功能,依托數(shù)據(jù)管理平臺(tái),通過數(shù)據(jù)治理活動(dòng),最終構(gòu)建學(xué)校的數(shù)據(jù)資源體系。
2系統(tǒng)架構(gòu)設(shè)計(jì)
2. 1 設(shè)計(jì)思路
基于微服務(wù)架構(gòu)的軟件設(shè)計(jì)核心是做好服務(wù)的拆分,將復(fù)雜的應(yīng)用系統(tǒng)按照功能點(diǎn)拆分為一組獨(dú)立的小型服務(wù),服務(wù)之間通過標(biāo)準(zhǔn)接口互相調(diào)用。在服務(wù)拆分過程中應(yīng)當(dāng)遵循如下原則。
1)高內(nèi)聚每個(gè)微服務(wù)應(yīng)當(dāng)聚焦完成單一功能,服務(wù)之間應(yīng)當(dāng)有清晰的任務(wù)邊界,小型化的功能單元有利于加快開發(fā)速度。
2)低耦合:服務(wù)之間通過輕量化接口(如HTTP接口)進(jìn)行互相調(diào)用,單一服務(wù)功能的變更不影響其他服務(wù),有利于后期獨(dú)立進(jìn)行迭代和維護(hù)。
3)獨(dú)立自治:每個(gè)服務(wù)都可以獨(dú)立進(jìn)行開發(fā)、測(cè)試和部署,不同服務(wù)可以基于不同的技術(shù)路線來實(shí)現(xiàn),從而進(jìn)一步提高開發(fā)工作效率。
基于上述原則,在智慧校園公共軟件平臺(tái)的功能解耦規(guī)劃方面按照如下思路進(jìn)行。
1)進(jìn)行“管服分離”,即將面向后臺(tái)管理和面向用戶服務(wù)的功能進(jìn)行拆分,分別進(jìn)行規(guī)劃設(shè)計(jì)。
2)按照功能要素或業(yè)務(wù)流程進(jìn)行拆分。在面向后臺(tái)管理的功能方面,可以按照管理內(nèi)容、管理權(quán)限和管理安全三個(gè)維度分別進(jìn)行規(guī)劃設(shè)計(jì);在面向用戶服務(wù)的功能方面,可以按照內(nèi)容展示、檢索查詢、集成對(duì)接等不同的要素進(jìn)行獨(dú)立設(shè)計(jì)。
3)可以按照功能執(zhí)行模式進(jìn)行拆分,比如數(shù)據(jù)庫(kù)初始化等一次性執(zhí)行任務(wù)或周期性執(zhí)行的同步任務(wù)可獨(dú)立規(guī)劃。在軟件開發(fā)環(huán)節(jié),各微服務(wù)交由不同的開發(fā)團(tuán)隊(duì)進(jìn)行開發(fā)測(cè)試。在部署環(huán)節(jié),應(yīng)當(dāng)采用集群方式進(jìn)行高可用部署。
2.2 總體架構(gòu)
系統(tǒng)總體架構(gòu)如圖2所示,自下而上共包括六層,分別是基礎(chǔ)資源層、容器平臺(tái)層、業(yè)務(wù)服務(wù)層、服務(wù)治理層、網(wǎng)關(guān)層和用戶接入層。其中基礎(chǔ)資源層是指系統(tǒng)依托的基礎(chǔ)網(wǎng)信資源,在高校場(chǎng)景下多為校園私有云,所依賴的資源主要包括基礎(chǔ)計(jì)算存儲(chǔ)資源和數(shù)據(jù)資源,本系統(tǒng)建設(shè)時(shí)采用了CentOS7.6操作系統(tǒng)和MySQL8數(shù)據(jù)庫(kù)。需要說明的是在微服務(wù)架構(gòu)環(huán)境下,輕量化服務(wù)可以自身集成數(shù)據(jù)存儲(chǔ),但在重型業(yè)務(wù)系統(tǒng)中還是推薦使用更加穩(wěn)定的集中存儲(chǔ),也更有利于實(shí)現(xiàn)微服務(wù)的無狀態(tài)。用戶接入層是學(xué)校師生最終使用系統(tǒng)的訪問入口,包括PC端的Web、移動(dòng)端的H5、原生App和依托第三方平臺(tái)的小程序與服務(wù)號(hào)等。除上述兩層外,其余四層為核心設(shè)計(jì)部分,下文詳細(xì)闡述。
2.2.1 容器平臺(tái)層
容器平臺(tái)層是在數(shù)據(jù)中心提供的計(jì)算資源之上構(gòu)建容器運(yùn)行環(huán)境,以承載上層各項(xiàng)微服務(wù),本系統(tǒng)設(shè)計(jì)中選擇了主流的容器環(huán)境構(gòu)建工具,包括容器引擎、編排工具、管理平臺(tái)和鏡像倉(cāng)庫(kù)四個(gè)組件。容器引擎Docker是將宿主機(jī)的資源進(jìn)行虛擬化,包括CPU、內(nèi)存和磁盤等,為每個(gè)容器的運(yùn)行提供隔離環(huán)境,包括擁有獨(dú)立的進(jìn)程空間和文件系統(tǒng)等,從而實(shí)現(xiàn)高度的可移植性。容器編排工具K8S主要有兩項(xiàng)功能:一是實(shí)現(xiàn)容器的自動(dòng)化部署,并可在線進(jìn)行升級(jí)和回滾等操作,可在集群中動(dòng)態(tài)調(diào)度容器;二是能夠根據(jù)應(yīng)用的負(fù)載情況彈性擴(kuò)展或者收縮容器副本數(shù)量,從而靈活地應(yīng)對(duì)應(yīng)用負(fù)載的變化。管理平臺(tái)Rancher主要實(shí)現(xiàn)三項(xiàng)功能:一是提供K8S集群的Web界面管理,通過圖形化界面進(jìn)行容器的操作;二是實(shí)現(xiàn)多集群的管理,包括生產(chǎn)集群和測(cè)試集群的統(tǒng)一管理;三是提供身份認(rèn)證和監(jiān)控功能,確保合法用戶訪問K8S集群,同時(shí)對(duì)集群的狀態(tài)變更提供日志記錄等功能。鏡像倉(cāng)庫(kù)Harbor是容器鏡像的管理平臺(tái),雖然可以使用公有云中的鏡像托管服務(wù),但是自建企業(yè)級(jí)鏡像倉(cāng)庫(kù)是更加安全和通用的做法,Harbor支持對(duì)鏡像進(jìn)行統(tǒng)一的存儲(chǔ)分發(fā)、復(fù)制刪除等操作。
2.2.2 業(yè)務(wù)服務(wù)層
業(yè)務(wù)服務(wù)層是智慧校園公共軟件平臺(tái)的功能實(shí)現(xiàn)層,可拆分為兩部分,分別是公共基礎(chǔ)服務(wù)和業(yè)務(wù)功能服務(wù)。公共基礎(chǔ)服務(wù)包括消息隊(duì)列RabbitMQ、數(shù)據(jù)緩存Redis、文件存儲(chǔ)NFS(NetworkFileSystem)和對(duì)象存儲(chǔ)Minio,其中RabbitMQ和Redis也以微服務(wù)的形式通過容器運(yùn)行。消息隊(duì)列是為各微服務(wù)間通信提供基礎(chǔ)能力,支持異步處理和高并發(fā)場(chǎng)景,本系統(tǒng)中用戶認(rèn)證信息的處理、用戶信息的變更、用戶消息的發(fā)送等服務(wù)都通過消息隊(duì)列形式在相關(guān)服務(wù)間進(jìn)行通信。數(shù)據(jù)緩存Redis是內(nèi)存數(shù)據(jù)存儲(chǔ)技術(shù),通過將常用數(shù)據(jù)存儲(chǔ)于內(nèi)存中從而減少磁盤讀取,提高數(shù)據(jù)處理效率,本系統(tǒng)中用戶的在線狀態(tài)和基本信息、融合門戶中的應(yīng)用服務(wù)列表、第三方應(yīng)用的身份令牌信息等高頻使用數(shù)據(jù)都依賴Redis的存儲(chǔ)。NFS和Minio都是非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),其中文件存儲(chǔ)NFS主要用于存儲(chǔ)容量較大、訪問速度要求不高的文件,包括視頻、數(shù)據(jù)標(biāo)準(zhǔn)、數(shù)據(jù)文檔等內(nèi)容;對(duì)象存儲(chǔ)Minio主要用來存儲(chǔ)低延遲、高吞吐的非結(jié)構(gòu)化數(shù)據(jù),本系統(tǒng)中主要存儲(chǔ)人臉數(shù)據(jù),用于支撐移動(dòng)端登錄、門禁、考勤等高并發(fā)場(chǎng)景下的人臉識(shí)別服務(wù)。
業(yè)務(wù)功能服務(wù)是三大平臺(tái)的核心功能按照微服務(wù)思路進(jìn)行的功能單元規(guī)劃,需要說明的是由于篇幅限制,本文僅闡述功能的一級(jí)拆分思路,在實(shí)際開發(fā)過程中基于本系統(tǒng)設(shè)計(jì)原則進(jìn)行進(jìn)一步的細(xì)化拆分,以實(shí)現(xiàn)原子化的功能開發(fā)和部署。
統(tǒng)一認(rèn)證平臺(tái)功能從以下四個(gè)方面規(guī)劃。1)后臺(tái)的用戶和權(quán)限管理,也包括日志和報(bào)表的管理;2)對(duì)接第三方提供的統(tǒng)一認(rèn)證服務(wù),包括CAS、OAuth、LDAP等常見協(xié)議和認(rèn)證方式的支持,以及應(yīng)用的管理和鑒權(quán)等;3)認(rèn)證安全服務(wù),包括認(rèn)證安全策略設(shè)置和異常告警;4)消息服務(wù),支撐用戶通過驗(yàn)證碼方式登錄,同時(shí)面向第三方系統(tǒng)提供消息發(fā)送能力。融合服務(wù)門戶功能從以下四個(gè)方面規(guī)劃。1)門戶的前端服務(wù),包括首頁(yè)、服務(wù)中心、日程中心、資訊中心等功能;2)門戶的移動(dòng)端服務(wù),包括H5、小程序、App等;3)統(tǒng)一流程服務(wù),包括表單設(shè)計(jì)、流程設(shè)計(jì)、監(jiān)控統(tǒng)計(jì)等;4)門戶后臺(tái)管理,包括應(yīng)用發(fā)布和主題管理等。數(shù)據(jù)管理平臺(tái)功能從以下四個(gè)方面規(guī)劃。1)數(shù)據(jù)采集,包括交換作業(yè)設(shè)計(jì)、管理和監(jiān)控;
2)數(shù)據(jù)治理,包括數(shù)據(jù)確權(quán)、模型管理、質(zhì)量管理等;
3)標(biāo)準(zhǔn)管理,包括數(shù)據(jù)標(biāo)準(zhǔn)和數(shù)據(jù)代碼的管理
4)數(shù)據(jù)共享,包括面向用戶的數(shù)據(jù)門戶、數(shù)據(jù)接口管理、權(quán)限管理等。
2.2.3 服務(wù)治理層
服務(wù)治理層負(fù)責(zé)各微服務(wù)的有序協(xié)調(diào)組織,本系統(tǒng)設(shè)計(jì)中選用目前最流行的SpringCloud作為服務(wù)治理框架,SpringCloud 涵蓋了微服務(wù)架構(gòu)的完整技術(shù)棧,在服務(wù)注冊(cè)發(fā)現(xiàn)、限流降級(jí)、配置管理等方面均提供了多種可選技術(shù)。本系統(tǒng)在服務(wù)注冊(cè)方面采用Eureka,服務(wù)提供者將自身服務(wù)信息(IP地址、端口、服務(wù)名等)注冊(cè)到EurekaServer中,并通過心跳報(bào)文維持服務(wù)的存活狀態(tài),服務(wù)消費(fèi)者向Eureka查詢服務(wù)列表并以一定的負(fù)載均衡策略選擇服務(wù)提供者。在服務(wù)限流降級(jí)方面采用Hystrix,當(dāng)服務(wù)多次調(diào)用失敗時(shí),Hystrix即啟動(dòng)斷路器,為后續(xù)調(diào)用快速返回失敗狀態(tài),避免資源的浪費(fèi)和故障的蔓延,同時(shí)還可以啟用備選方案實(shí)現(xiàn)服務(wù)降級(jí),保障系統(tǒng)基本功能的可用性。在服務(wù)配置管理方面采用Spring Cloud Config,基于微服務(wù)架構(gòu)的軟件由于服務(wù)數(shù)量非常多,配置項(xiàng)復(fù)雜且難以管理,使用配置中心可以集中對(duì)各服務(wù)的配置進(jìn)行版本控制和歷史追蹤等,方便后續(xù)統(tǒng)一的容器升級(jí)等操作,使得容器僅專注于代碼實(shí)現(xiàn)。
2.2.4 網(wǎng)關(guān)層
網(wǎng)關(guān)層是客戶端和微服務(wù)集群的連接橋梁,作用是將用戶的訪問請(qǐng)求經(jīng)過路由轉(zhuǎn)發(fā)至相應(yīng)的業(yè)務(wù)功能微服務(wù)中去,通過網(wǎng)關(guān)可以對(duì)用戶屏蔽不同的微服務(wù)地址,對(duì)外提供統(tǒng)一的入口,并可以在路由轉(zhuǎn)發(fā)過程中完成負(fù)載均衡、身份驗(yàn)證和日志記錄等工作。根據(jù)不同技術(shù)組件的特點(diǎn),本系統(tǒng)在網(wǎng)關(guān)層使用Nginx作為反向代理面向用戶提供服務(wù),將用戶請(qǐng)求轉(zhuǎn)發(fā)至微服務(wù)網(wǎng)關(guān)Zuul進(jìn)行路由轉(zhuǎn)發(fā)。Zuul核心技術(shù)原理是依靠Filter(過濾器)實(shí)現(xiàn)訪問請(qǐng)求到微服務(wù)的路由轉(zhuǎn)發(fā),提供了PRE、ROUTING、POST、ERROR四種標(biāo)準(zhǔn)的過濾器分別在訪問被路由前、中、后和出錯(cuò)時(shí)調(diào)用。
3系統(tǒng)部署實(shí)施過程
3.1 計(jì)算資源規(guī)劃
本系統(tǒng)建設(shè)時(shí)計(jì)算資源的規(guī)劃以學(xué)校2萬用戶規(guī)模、2000并發(fā)量為基準(zhǔn)進(jìn)行測(cè)算,充分采用高可用模式進(jìn)行部署:采用1臺(tái)應(yīng)用服務(wù)網(wǎng)關(guān)作為對(duì)外統(tǒng)一的服務(wù)地址;采用3臺(tái)服務(wù)器搭建K8S集群管理節(jié)點(diǎn),6臺(tái)服務(wù)器作為K8S集群工作節(jié)點(diǎn),集群中只要有半數(shù)以上的服務(wù)器狀態(tài)正常即可維持系統(tǒng)正常服務(wù),極大地提高了可用性;采用1臺(tái)服務(wù)器作為鏡像倉(cāng)庫(kù),存放打包好的容器鏡像;分別采用1臺(tái)服務(wù)器作為MySQL8數(shù)據(jù)庫(kù)和NFS存儲(chǔ)服務(wù)器,向整個(gè)集群提供基礎(chǔ)的結(jié)構(gòu)化和文件存儲(chǔ);采用4臺(tái)服務(wù)器組成高性能對(duì)象存儲(chǔ)集群Minio;在管理層面,采用3臺(tái)服務(wù)器搭建Rancher管理集群,并通過1臺(tái)網(wǎng)關(guān)服務(wù)器向運(yùn)維人員提供Web端的管理界面。整個(gè)集群共21臺(tái)服務(wù)器,具體見表1,邏輯連接關(guān)系見圖3。
表1計(jì)算資源規(guī)劃
3.2基本部署流程
本系統(tǒng)部署主要包括五個(gè)步驟:服務(wù)器環(huán)境準(zhǔn)備、域名規(guī)劃及解析、基礎(chǔ)服務(wù)搭建、Rancher和K8S集群部署、應(yīng)用服務(wù)部署。服務(wù)器環(huán)境準(zhǔn)備的工作包括配置服務(wù)器網(wǎng)絡(luò)、啟動(dòng)NTP服務(wù)確保集群時(shí)間同步、按照K8S官方文檔要求修改主機(jī)名并創(chuàng)建新的用戶用于后續(xù)集群的安裝、關(guān)閉防火墻或按照官方文檔說明在集群內(nèi)部開放所需的端□。域名規(guī)劃及解析主要是將面向用戶的服務(wù)域名與Rancher和Harbor的管理域名通過DNS服務(wù)器解析到對(duì)應(yīng)的地址?;A(chǔ)服務(wù)搭建的工作是將集群外的鏡像倉(cāng)庫(kù)Harbor、數(shù)據(jù)庫(kù)MySQL8、文件存儲(chǔ)NFS、對(duì)象存儲(chǔ)Minio和網(wǎng)關(guān)Nginx進(jìn)行獨(dú)立搭建部署。Rancher和K8S集群部署是本系統(tǒng)部署的核心環(huán)節(jié),主要步驟如表2所示。應(yīng)用服務(wù)部署是在前序所有步驟完成后,由開發(fā)人員將所有服務(wù)的鏡像打包發(fā)布到鏡像倉(cāng)庫(kù)Harbor,然后由實(shí)施人員通過Rancher按照部署順序逐一拉取并啟動(dòng)鏡像。
圖4搭建完畢的Rancher顯示管理集群的資源使用情況
部署完畢后即可通過Rancher管理工具提供的圖形化界面對(duì)K8S集群進(jìn)行管理(見圖4)。
4系統(tǒng)運(yùn)維管理要點(diǎn)
采用微服務(wù)架構(gòu)的智慧校園公共軟件平臺(tái)在日常運(yùn)維管理方面相較于傳統(tǒng)的單體架構(gòu)也有不同之處,主要體現(xiàn)在以下四個(gè)方面。
1)關(guān)注集群中工作節(jié)點(diǎn)的CPU、內(nèi)存資源使用情況,合理設(shè)置集群預(yù)留的資源比例,必要時(shí)手動(dòng)調(diào)整容器所處的宿主機(jī)以平衡集群資源使用率(圖5)。2)發(fā)現(xiàn)系統(tǒng)故障后首先由運(yùn)維人員根據(jù)業(yè)務(wù)功能逐一排查相關(guān)微服務(wù)的日志輸出,定位故障容器后反饋至對(duì)應(yīng)的開發(fā)團(tuán)隊(duì)進(jìn)行處理,最后在線升級(jí)更新后的容器。3)根據(jù)業(yè)務(wù)開展情況靈活調(diào)整相關(guān)服務(wù)的容器副本數(shù)量以應(yīng)對(duì)可能的高并發(fā)場(chǎng)景,例如,在選課業(yè)務(wù)期間擴(kuò)充認(rèn)證服務(wù)的副本數(shù)量。4)同步觀察數(shù)據(jù)庫(kù)的負(fù)載情況,特別是在大規(guī)模擴(kuò)充容器副本數(shù)量的情況下,留意由于副本數(shù)量增加導(dǎo)致的數(shù)據(jù)庫(kù)負(fù)載增加。
5 結(jié)束語(yǔ)
空軍軍醫(yī)大學(xué)采用微服務(wù)架構(gòu)建設(shè)的智慧校園公共軟件平臺(tái)自2021年3月投入使用以來已穩(wěn)定運(yùn)行四年多,其間所有的系統(tǒng)升級(jí)采用在線升級(jí)方式進(jìn)行,未出現(xiàn)業(yè)務(wù)中斷??哲娷娽t(yī)大學(xué)的實(shí)踐充分證明,采用微服務(wù)架構(gòu)顯著提高了系統(tǒng)的可用性和可擴(kuò)展性,可以實(shí)現(xiàn)負(fù)載快速擴(kuò)容,降低運(yùn)維管理工作難度,同時(shí)可以針對(duì)不同的功能進(jìn)行獨(dú)立升級(jí);開發(fā)人員可以靈活選用不同的技術(shù)棧提高開發(fā)效率?;谖⒎?wù)架構(gòu)的靈活性,后續(xù)可以進(jìn)一步探索更多校園微應(yīng)用的建設(shè)。
6 參考文獻(xiàn)
[1]蔣彪.Docker微服務(wù)架構(gòu)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2018.
[2]蒲偉.基于微服務(wù)的軟件開發(fā)框架的探索與思考[J].科技創(chuàng)新與應(yīng)用,2021,11(19):56-58.
[3]巢晟盛.基于SpringBoot微服務(wù)架構(gòu)下前后端分離的MVVM模型淺析[J].電腦知識(shí)與技術(shù),2021,17(23):128-129,141.
[4]韓立峰,元雪冬.基于微服務(wù)的高校網(wǎng)上訂餐系統(tǒng)設(shè)計(jì)[J].微型電腦應(yīng)用,2021,37(9):155-157,165.
[5]倪小璐,王旭英,邊俊凱,等.微服務(wù)軟件架構(gòu)設(shè)計(jì)模式及其應(yīng)用[J].杭州師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,20(4):442-448.
[6]張濤,劉彩云,汪翔.基于Docker的智慧教學(xué)平臺(tái)研究與實(shí)踐[J].牡丹江大學(xué)學(xué)報(bào),2021,30(7):88-95.
[7]陳文沛,王小金,趙守凱.基于中臺(tái)技術(shù)的高職高專院校智慧校園設(shè)計(jì)研究[J].中國(guó)教育技術(shù)裝備,2023(9):61-64.