劉則芬,齊 梅,樊 浩,李 升
(安徽開(kāi)放大學(xué),合肥 230022)
安徽開(kāi)放大學(xué)非學(xué)歷培訓(xùn)業(yè)務(wù)已成為學(xué)校發(fā)展的重要支撐。近幾年,基于安徽專(zhuān)技在線平臺(tái)培訓(xùn)的非學(xué)歷教育年平均人次均超過(guò)50萬(wàn)。該平臺(tái)建設(shè)時(shí)主要針對(duì)公需科目培訓(xùn),按照注冊(cè)50萬(wàn)人,在線2萬(wàn)人設(shè)計(jì)的?,F(xiàn)有平臺(tái)存在以下問(wèn)題:(1)業(yè)務(wù)代碼復(fù)雜且量大,業(yè)務(wù)之間的耦合度非常高,導(dǎo)致平臺(tái)的維護(hù)難度大、維護(hù)成本高;隨著業(yè)務(wù)復(fù)雜度的增加,給培訓(xùn)管理工作帶來(lái)許多不便,增加很多工作量。(2)平臺(tái)頂層設(shè)計(jì)的局限性,起初設(shè)計(jì)的單一培訓(xùn)模式已經(jīng)無(wú)法滿足多樣化的培訓(xùn)需求,平臺(tái)在可擴(kuò)展性、可移植性以及靈活性等方面存在問(wèn)題。(3)系統(tǒng)錯(cuò)誤隔離性差,任何一個(gè)業(yè)務(wù)模塊出現(xiàn)錯(cuò)誤,可能造成整個(gè)系統(tǒng)宕機(jī),且問(wèn)題定位難度大,更新部署后可能會(huì)出現(xiàn)新的問(wèn)題,導(dǎo)致功能更新速度慢。(4)系統(tǒng)啟動(dòng)慢,一個(gè)進(jìn)程包含了所有的業(yè)務(wù)邏輯,涉及的啟動(dòng)模塊多,導(dǎo)致系統(tǒng)的啟動(dòng)周期過(guò)長(zhǎng),用戶體驗(yàn)滿意度不高。隨著非學(xué)歷培訓(xùn)業(yè)務(wù)的不斷拓展,培訓(xùn)內(nèi)容、培訓(xùn)領(lǐng)域不斷擴(kuò)大,培訓(xùn)形式、合作方式及培訓(xùn)政策等復(fù)雜多樣,為了更好地應(yīng)對(duì)各種變化,需要構(gòu)建一套業(yè)務(wù)中臺(tái),形成較為穩(wěn)定的業(yè)務(wù)層,基于業(yè)務(wù)中臺(tái)快速搭建小前臺(tái),在業(yè)務(wù)操作中快速滿足業(yè)務(wù)變化的需要。而目前的培訓(xùn)平臺(tái)使用傳統(tǒng)的單體式架構(gòu),將所有業(yè)務(wù)模塊都打包在一個(gè)應(yīng)用里面運(yùn)行,各個(gè)模塊耦合嚴(yán)重,存在開(kāi)發(fā)效率低、代碼維護(hù)難、部署不靈活、穩(wěn)定性和擴(kuò)展性不高等問(wèn)題。
為了解決現(xiàn)階段非學(xué)歷培訓(xùn)平臺(tái)出現(xiàn)的問(wèn)題,本文提出了基于微服務(wù)架構(gòu)和數(shù)據(jù)中臺(tái)的非學(xué)歷培訓(xùn)平臺(tái),將多種培訓(xùn)業(yè)務(wù)系統(tǒng)中具有共同性和通用性的功能提取、剝離,形成符合非學(xué)歷教育培訓(xùn)特點(diǎn)的服務(wù)共享層,從而將高度耦合的業(yè)務(wù)功能分解到各個(gè)分散的微服務(wù)中,以實(shí)現(xiàn)對(duì)業(yè)務(wù)系統(tǒng)的解耦。使用數(shù)據(jù)中臺(tái)技術(shù),通過(guò)數(shù)據(jù)采集、清洗、計(jì)算、存儲(chǔ)、分析等,構(gòu)建非學(xué)歷數(shù)據(jù)服務(wù)層,打破業(yè)務(wù)和數(shù)據(jù)孤島,滿足智能化、數(shù)字化的現(xiàn)代培訓(xùn)業(yè)務(wù)需求。
微服務(wù)架構(gòu)是一種將一個(gè)單一應(yīng)用程序開(kāi)發(fā)為一組小型服務(wù)的方法,每個(gè)服務(wù)運(yùn)行在自己的進(jìn)程中,服務(wù)間通信采用“輕量級(jí)通信機(jī)制”[1-2]。這些服務(wù)圍繞業(yè)務(wù)能力進(jìn)行構(gòu)建并且可通過(guò)自動(dòng)部署機(jī)制獨(dú)立部署,這些服務(wù)共用一個(gè)小型的集中式管理,可用不同的語(yǔ)言開(kāi)發(fā),使用不同的數(shù)據(jù)存儲(chǔ)技術(shù)[3],從而能夠很好地解決單體式架構(gòu)出現(xiàn)的問(wèn)題。目前該技術(shù)在各個(gè)領(lǐng)域應(yīng)用廣泛,韓笑等人利用微服務(wù)架構(gòu)對(duì)新聞制作系統(tǒng)進(jìn)行了優(yōu)化和實(shí)現(xiàn),提升了系統(tǒng)可擴(kuò)展性、靈活性以及開(kāi)發(fā)效率[4];曹斌等人采用微服務(wù)技術(shù)對(duì)系統(tǒng)進(jìn)行重建,使HIS系統(tǒng)更易修改,擴(kuò)展性更強(qiáng)[5];洪柏樺等人使用微服務(wù)架構(gòu)能夠?qū)€上的課程進(jìn)行有效管理,滿足用戶的個(gè)性化需求[6];吳雨渲等人通過(guò)使用微服務(wù)架構(gòu)解決了個(gè)人健康管理系統(tǒng)在實(shí)際應(yīng)用過(guò)程中產(chǎn)生的問(wèn)題,使系統(tǒng)更具有可擴(kuò)展性和容錯(cuò)性,節(jié)約了開(kāi)發(fā)和維護(hù)成本[7];李京輝使用基于微服務(wù)架構(gòu)和中臺(tái)技術(shù)滿足了智慧營(yíng)區(qū)綜合管控需求,提升部隊(duì)指揮決策、管理服務(wù)水平和生活服務(wù)水平[8]。使用微服務(wù)架構(gòu)將業(yè)務(wù)拆分能夠使項(xiàng)目復(fù)雜度降低,單個(gè)微服務(wù)啟動(dòng)快,靈活應(yīng)對(duì)業(yè)務(wù)的變化,提高項(xiàng)目的可擴(kuò)展性。本文將微服務(wù)架構(gòu)應(yīng)用到非學(xué)歷培訓(xùn)平臺(tái)上,結(jié)合中臺(tái)技術(shù),實(shí)現(xiàn)更小粒度的分庫(kù)+讀寫(xiě)分離模式架構(gòu),以提升平臺(tái)性能和可靠性。下面給出了詳細(xì)設(shè)計(jì)。
合理搭建非學(xué)歷培訓(xùn)平臺(tái)整體架構(gòu),構(gòu)建一體化的培訓(xùn)流程,從根本上決定了安徽開(kāi)放大學(xué)非學(xué)歷培訓(xùn)業(yè)務(wù)的服務(wù)規(guī)模和實(shí)現(xiàn)水平。非學(xué)歷培訓(xùn)平臺(tái)使用Spring Cloud框架來(lái)搭建微服務(wù),制定開(kāi)放、規(guī)范的技術(shù)標(biāo)準(zhǔn),實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的建設(shè)不再以沉重的單體應(yīng)用系統(tǒng)為單位,而以解耦后重構(gòu)的微應(yīng)用為單位。將若干具有獨(dú)立功能的微服務(wù),組合成為能夠滿足某個(gè)場(chǎng)景使用需求的微應(yīng)用,大大提高培訓(xùn)業(yè)務(wù)信息建設(shè)的靈敏度和迭代升級(jí)速度。通過(guò)梳理和細(xì)化各類(lèi)非學(xué)歷教育教學(xué)管理過(guò)程,將具有共同性的或通用性較高的業(yè)務(wù)功能,統(tǒng)一剝離出來(lái),形成業(yè)務(wù)中臺(tái),使學(xué)習(xí)過(guò)程業(yè)務(wù)功能顆?;?,業(yè)務(wù)流程組裝模塊化。數(shù)據(jù)中臺(tái)將平臺(tái)不同數(shù)據(jù)源的業(yè)務(wù)數(shù)據(jù)進(jìn)行加工處理,為各種業(yè)務(wù)提供統(tǒng)一的數(shù)據(jù)支持服務(wù)。
基于微服務(wù)架構(gòu)和中臺(tái)技術(shù)的非學(xué)歷培訓(xùn)平臺(tái)總體架構(gòu)從下至上分為四層:網(wǎng)絡(luò)通信層、基礎(chǔ)設(shè)施層、中臺(tái)服務(wù)層、應(yīng)用系統(tǒng)層。外加兩個(gè)方面的支撐保障體系。分層設(shè)計(jì)使平臺(tái)更好地支撐各類(lèi)綜合業(yè)務(wù),將系統(tǒng)劃分成相互獨(dú)立且功能單一的多個(gè)微服務(wù)。系統(tǒng)的總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
1.網(wǎng)絡(luò)通信層
該層是非學(xué)歷培訓(xùn)平臺(tái)建設(shè)的基礎(chǔ),為各系統(tǒng)建提供通信鏈路及數(shù)據(jù)傳輸通道,使用的是校園有限網(wǎng)絡(luò)、WIFI無(wú)線網(wǎng)絡(luò)、4G/5G移動(dòng)網(wǎng)絡(luò)等通信技術(shù)。
2.基礎(chǔ)設(shè)施層
該層包括服務(wù)器、存儲(chǔ)、安全等建設(shè)內(nèi)容,建立基礎(chǔ)運(yùn)行環(huán)境,從數(shù)據(jù)傳輸、計(jì)算、安全等方面,確保系統(tǒng)安全可靠、穩(wěn)定高效、簡(jiǎn)單實(shí)用。通過(guò)搭建私有云和采用公有云混合服務(wù)模式,建立一個(gè)穩(wěn)定可靠、性能良好、資源利用率高、可伸縮性強(qiáng)的混合云計(jì)算基礎(chǔ)架構(gòu),為整個(gè)系統(tǒng)提供計(jì)算資源和存儲(chǔ)資源的虛擬化分配、調(diào)度和管理服務(wù)。
3.中臺(tái)服務(wù)層
中臺(tái)服務(wù)層為平臺(tái)提供數(shù)據(jù)、消息、認(rèn)證等標(biāo)準(zhǔn)和規(guī)范。通過(guò)數(shù)據(jù)中臺(tái)和業(yè)務(wù)中臺(tái)的建設(shè),為非學(xué)歷培訓(xùn)的各種業(yè)務(wù)進(jìn)行抽象,形成一系列可支撐應(yīng)用的共性業(yè)務(wù)服務(wù)和數(shù)據(jù)支撐服務(wù)。
4.應(yīng)用系統(tǒng)層
建設(shè)應(yīng)用系統(tǒng)統(tǒng)一展示的門(mén)戶,實(shí)現(xiàn)信息的集中化訪問(wèn)。該層是各類(lèi)服務(wù)和應(yīng)用的主要入口,包括共用資訊、應(yīng)用入口、統(tǒng)一身份認(rèn)證,以及聚合數(shù)據(jù)展示,各業(yè)務(wù)系統(tǒng)所提供的非學(xué)歷培訓(xùn)用戶界面、用戶交互邏輯、業(yè)務(wù)服務(wù)展示。其主要功能有面向各級(jí)各類(lèi)學(xué)習(xí)者、教師和管理者提供的教學(xué)、管理、數(shù)字化資源和大數(shù)據(jù)分析等一系列應(yīng)用服務(wù)。
5.支撐保障體系
包括保障網(wǎng)絡(luò)傳輸和業(yè)務(wù)系統(tǒng)信息安全體系,以及保障軟硬件等基礎(chǔ)設(shè)施和應(yīng)用系統(tǒng)穩(wěn)定運(yùn)行的信息化運(yùn)維服務(wù)體系。該體系為非學(xué)歷平臺(tái)的高效運(yùn)行提供有效的保障。
根據(jù)非學(xué)歷培訓(xùn)的業(yè)務(wù)需求,其主要由云基礎(chǔ)設(shè)施平臺(tái)、數(shù)據(jù)中臺(tái)、業(yè)務(wù)中臺(tái)、前臺(tái)應(yīng)用系統(tǒng)、后臺(tái)應(yīng)用系統(tǒng)及標(biāo)準(zhǔn)規(guī)范和運(yùn)維體系、信息安全保障體系等構(gòu)成。系統(tǒng)的邏輯結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)邏輯架構(gòu)
1.云基礎(chǔ)設(shè)施平臺(tái)
通過(guò)搭建私有云和采用公有云混合服務(wù)模式,建立穩(wěn)定可靠、性能良好、資源利用率高、可伸縮性強(qiáng)的混合云計(jì)算基礎(chǔ)框架,為平臺(tái)提供計(jì)算服務(wù)、數(shù)據(jù)庫(kù)服務(wù)、存儲(chǔ)服務(wù)、文件服務(wù)、日志服務(wù)、網(wǎng)絡(luò)服務(wù)、大數(shù)據(jù)服務(wù)以及容器服務(wù)。
2.數(shù)據(jù)中臺(tái)
數(shù)據(jù)中臺(tái)是為了創(chuàng)新驅(qū)動(dòng)快速變化的前臺(tái)和穩(wěn)定可靠驅(qū)動(dòng)變化周期相對(duì)慢的后臺(tái)之間的矛盾而存在的,其支持以用戶為中心的持續(xù)規(guī)?;膭?chuàng)新,并持續(xù)提高企業(yè)對(duì)用戶的響應(yīng)力。數(shù)據(jù)中臺(tái)通過(guò)現(xiàn)有的數(shù)據(jù)抽取、轉(zhuǎn)換、清洗等手段,以業(yè)務(wù)為導(dǎo)向,形成高準(zhǔn)確性、權(quán)威性的非學(xué)歷培訓(xùn)數(shù)據(jù)倉(cāng)庫(kù),并對(duì)數(shù)據(jù)分析和展示端提供通用的、標(biāo)準(zhǔn)化的數(shù)據(jù)服務(wù),使數(shù)據(jù)能夠充分在各個(gè)業(yè)務(wù)環(huán)節(jié)和部門(mén)實(shí)時(shí)流通,有效解決培訓(xùn)業(yè)務(wù)系統(tǒng)中目前存在的數(shù)據(jù)孤島、數(shù)據(jù)不一致和數(shù)據(jù)維護(hù)混亂等問(wèn)題。數(shù)據(jù)中臺(tái)主要包括數(shù)據(jù)資產(chǎn)、數(shù)據(jù)集成、數(shù)據(jù)計(jì)算、數(shù)據(jù)服務(wù)、數(shù)據(jù)展示、數(shù)據(jù)搜索等服務(wù),以及面向業(yè)務(wù)的數(shù)據(jù)資產(chǎn)。
3.業(yè)務(wù)中臺(tái)
梳理和細(xì)化安徽開(kāi)放大學(xué)非學(xué)歷教育所有業(yè)務(wù),通過(guò)分解業(yè)務(wù)特征,細(xì)化業(yè)務(wù)功能,將具有共同性的或通用性較高的功能,統(tǒng)一剝離出來(lái),高度抽象,形成細(xì)粒度化的微服務(wù),統(tǒng)一沉淀至業(yè)務(wù)中臺(tái),為各類(lèi)型培訓(xùn)業(yè)務(wù)應(yīng)用系統(tǒng)提供高復(fù)用性,靈活、敏捷的中間層支撐共享服務(wù)。通過(guò)業(yè)務(wù)梳理,從非學(xué)歷培訓(xùn)業(yè)務(wù)系統(tǒng)中全面歸納、抽取、提煉服務(wù)功能,在明確微服務(wù)的定義和劃分原則的基礎(chǔ)上,按照統(tǒng)一標(biāo)準(zhǔn)進(jìn)行分工開(kāi)發(fā)。提煉的服務(wù)按功能分為若干微服務(wù)組,每組微服務(wù)組包括若干微服務(wù)。例如:支撐服務(wù)組(包括語(yǔ)音識(shí)別服務(wù)、智能搜索服務(wù)、智能推薦服務(wù)、智能客服服務(wù)、人臉識(shí)別服務(wù)等),學(xué)習(xí)服務(wù)組(包括預(yù)學(xué)習(xí)服務(wù)、學(xué)習(xí)記錄服務(wù)、學(xué)習(xí)任務(wù)單服務(wù)等),用戶服務(wù)組,資源服務(wù)組,教務(wù)服務(wù)組,教學(xué)服務(wù)組,考核服務(wù)組,學(xué)習(xí)成果服務(wù)組,直播服務(wù)組,消息服務(wù)組等等。
4.前臺(tái)應(yīng)用系統(tǒng)
根據(jù)非學(xué)歷培訓(xùn)的業(yè)務(wù)需求,建立統(tǒng)一門(mén)戶頁(yè)面,為所有參加安徽開(kāi)放大學(xué)培訓(xùn)的各類(lèi)學(xué)員、教師、管理人員等提供一個(gè)統(tǒng)一門(mén)戶,統(tǒng)一入口,通過(guò)此入口可以登錄、注冊(cè),進(jìn)入各類(lèi)站群業(yè)務(wù)系統(tǒng),進(jìn)入多身份空間,進(jìn)入統(tǒng)一管理后臺(tái)。
5.后臺(tái)應(yīng)用系統(tǒng)
后臺(tái)應(yīng)用系統(tǒng)支持多管理者、多角色、動(dòng)態(tài)可配置的統(tǒng)一后臺(tái)管理系統(tǒng),構(gòu)建系統(tǒng)管理、運(yùn)營(yíng)管理、業(yè)務(wù)管理、數(shù)據(jù)管理、運(yùn)維管理等。一個(gè)管理員可以一次性管理多個(gè)站點(diǎn),并且可以在多個(gè)站點(diǎn)間進(jìn)行新聞、資源、課程、培訓(xùn)項(xiàng)目、活動(dòng)相關(guān)數(shù)據(jù)的分享(上報(bào)、下發(fā),平級(jí)分享)等。
6.標(biāo)準(zhǔn)規(guī)范和運(yùn)維體系
建設(shè)統(tǒng)一的數(shù)據(jù)和協(xié)議標(biāo)準(zhǔn),構(gòu)建行之有效的運(yùn)維體系,全面支撐數(shù)據(jù)中心基礎(chǔ)設(shè)施、云平臺(tái)、數(shù)據(jù)、應(yīng)用、安全等各方面的運(yùn)維服務(wù),確保系統(tǒng)安全可靠運(yùn)行。
7.信息安全防護(hù)體系
建設(shè)云平臺(tái)統(tǒng)一的安全防護(hù)體系,具備全面軟硬立體的攻擊防御和安全審計(jì)能力。
非學(xué)歷培訓(xùn)平臺(tái)在設(shè)計(jì)時(shí)為了方便學(xué)員更好地使用各種客戶端,如PC端、移動(dòng)App、微信小程序、微信公眾號(hào)、移動(dòng)端h5網(wǎng)站、支付寶小程序等,采用不同的標(biāo)準(zhǔn),各系統(tǒng)之間相互獨(dú)立,數(shù)據(jù)無(wú)法實(shí)時(shí)更新,信息和資源無(wú)法進(jìn)行實(shí)時(shí)共享,形成信息孤島。構(gòu)建非學(xué)歷培訓(xùn)平臺(tái)的用戶指標(biāo)分析體系,包括用戶統(tǒng)計(jì)、用戶行為統(tǒng)計(jì)、資源統(tǒng)計(jì)、用戶行為分析等,構(gòu)建采集器、日志、數(shù)據(jù)庫(kù)等各類(lèi)結(jié)構(gòu)和非結(jié)構(gòu)化數(shù)據(jù)源上報(bào)引擎,將數(shù)據(jù)采集上報(bào)到非學(xué)歷教育培訓(xùn)平臺(tái)的大數(shù)據(jù)管理模塊。通過(guò)大數(shù)據(jù)管理模塊,使用統(tǒng)一的標(biāo)準(zhǔn)和口徑,對(duì)數(shù)據(jù)進(jìn)行分析,構(gòu)建非學(xué)歷教育培訓(xùn)平臺(tái)的可視化分析系統(tǒng)和數(shù)據(jù)大屏可視化展示系統(tǒng)。大數(shù)據(jù)分析平臺(tái)的設(shè)計(jì)如圖3所示。
圖3 大數(shù)據(jù)分析微服務(wù)平臺(tái)設(shè)計(jì)
該模塊使用了數(shù)據(jù)中臺(tái)技術(shù),利用線上平臺(tái)、線下活動(dòng)工具、手工導(dǎo)入等方式采集的數(shù)據(jù),使用統(tǒng)一的標(biāo)準(zhǔn)和接口進(jìn)行計(jì)算、存儲(chǔ)、開(kāi)發(fā)、可視化展示一站式處理。為平臺(tái)用戶提供統(tǒng)一的查詢服務(wù)、資源統(tǒng)計(jì)服務(wù)、標(biāo)簽服務(wù)、用戶行為分析服務(wù)、用戶指標(biāo)分析服務(wù)、數(shù)據(jù)產(chǎn)出服務(wù)。大數(shù)據(jù)分析平臺(tái)有效解決了不同媒介之間的信息孤島問(wèn)題,實(shí)現(xiàn)平臺(tái)的信息和資源的數(shù)據(jù)共享。
交易中心為學(xué)員在線付費(fèi)學(xué)習(xí)提供一站式在線服務(wù),是整個(gè)非學(xué)歷培訓(xùn)平臺(tái)建設(shè)的重要內(nèi)容。其服務(wù)的對(duì)象是參加非學(xué)歷培訓(xùn)的學(xué)員、平臺(tái)的管理人員和財(cái)務(wù)人員。交易中心通過(guò)對(duì)原有的業(yè)務(wù)流程進(jìn)行梳理和分解,對(duì)重構(gòu)后的業(yè)務(wù)流程進(jìn)行服務(wù)重組,將業(yè)務(wù)流程進(jìn)行優(yōu)化,實(shí)現(xiàn)創(chuàng)新的服務(wù)模式和服務(wù)碎片化的管理。交易中心微服務(wù)設(shè)計(jì)的基本思路是:從學(xué)員用戶的視角,圍繞學(xué)員在線報(bào)名繳費(fèi)的流程,對(duì)業(yè)務(wù)的流程進(jìn)行重構(gòu)。業(yè)務(wù)流程由用戶自主發(fā)起,用戶可全程把控流程辦理的進(jìn)度。具體實(shí)施步驟:根據(jù)非學(xué)歷培訓(xùn)的報(bào)名流程對(duì)所涉及的業(yè)務(wù)進(jìn)行劃分,編制交易中心微服務(wù)的總體需求,進(jìn)一步對(duì)流程進(jìn)行細(xì)化,對(duì)流程進(jìn)行面向服務(wù)的梳理,重構(gòu)業(yè)務(wù)流程。交易中心微服務(wù)設(shè)計(jì)如圖4所示。
圖4 交易中心微服務(wù)設(shè)計(jì)
交易中心微服務(wù)通過(guò)細(xì)粒度劃分復(fù)雜的業(yè)務(wù),將其變成面向用戶的最小服務(wù)單元,通過(guò)一個(gè)統(tǒng)一的界面提供給用戶,增加用戶對(duì)非學(xué)歷培訓(xùn)平臺(tái)的黏度,提高該平臺(tái)的使用價(jià)值。
1.服務(wù)的注冊(cè)與發(fā)現(xiàn)
非學(xué)歷培訓(xùn)平臺(tái)微服務(wù)的實(shí)現(xiàn)使用SpringCloud技術(shù)框架,實(shí)現(xiàn)對(duì)微服務(wù)運(yùn)行中的狀態(tài)監(jiān)控、微服務(wù)運(yùn)行異常時(shí)的治理策略配置等場(chǎng)景,保障微服務(wù)在常見(jiàn)異常場(chǎng)景下的自恢復(fù)能力。系統(tǒng)使用Eureka框架實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)現(xiàn)。Eureka是Netflix開(kāi)發(fā)的服務(wù)發(fā)現(xiàn)框架,主要用于定位運(yùn)行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的。一個(gè)Eureka中分為EurekaServer和Eureka Client,其中EurekaServer是作為服務(wù)的注冊(cè)與發(fā)現(xiàn)中心,Eurekaclient既可以作為服務(wù)的生產(chǎn)者,又可以作為服務(wù)的消費(fèi)者。在應(yīng)用啟動(dòng)后,將會(huì)向EurekaServer發(fā)送心跳,默認(rèn)周期為30秒。如果EurekaServer在多個(gè)心跳周期內(nèi)沒(méi)有接收到某個(gè)節(jié)點(diǎn)的心跳,EurekaServer將會(huì)從服務(wù)注冊(cè)表中把這個(gè)服務(wù)節(jié)點(diǎn)移除(默認(rèn)90秒)。Eureka通過(guò)心跳檢查、客戶端緩存等機(jī)制,確保了系統(tǒng)的高可用性、靈活性和可伸縮性。
2.服務(wù)網(wǎng)關(guān)
客戶端的微服務(wù)請(qǐng)求通過(guò)服務(wù)網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā),網(wǎng)關(guān)為外部服務(wù)提供統(tǒng)一入口訪問(wèn)內(nèi)部微服務(wù),在SpringCloud框架中,SpringCloudZuul封裝了Zuul組件,作為一個(gè)API網(wǎng)關(guān),負(fù)責(zé)提供負(fù)載均衡、反向代理、動(dòng)態(tài)路由、靜態(tài)資源處理和權(quán)限認(rèn)證等功能。Zuul的核心就是過(guò)濾器,Zuul基于Servlet實(shí)現(xiàn)。當(dāng)服務(wù)網(wǎng)關(guān)收到客戶端請(qǐng)求后,會(huì)先進(jìn)入pre過(guò)濾器,在pre過(guò)濾器執(zhí)行完后,接著就到了routing過(guò)濾器中,開(kāi)始路由到具體的業(yè)務(wù)服務(wù)中,并執(zhí)行業(yè)務(wù)邏輯后返回,當(dāng)遇到錯(cuò)誤的情況會(huì)被錯(cuò)誤過(guò)濾器攔截。
3.熔斷隔離機(jī)制
在平臺(tái)運(yùn)行的過(guò)程中,需要做好容錯(cuò)機(jī)制和隔離機(jī)制,才能夠避免由于資源耗盡而引起的雪崩效應(yīng),避免整個(gè)系統(tǒng)癱瘓。為此使用了Netflix開(kāi)源的一款容錯(cuò)框架Hystrix,該構(gòu)架能夠?qū)ξ⒎?wù)進(jìn)行熔斷、降級(jí)、限流。使用命令模式將所有的外部服務(wù)調(diào)用包裝在HystrixCommand或HystrixObservableCommand對(duì)象中,并將該對(duì)象放在單獨(dú)的線程中執(zhí)行;每個(gè)依賴(lài)都維護(hù)著一個(gè)線程池(或信號(hào)量),線程池被耗盡則拒絕請(qǐng)求(而不是讓請(qǐng)求排隊(duì)),記錄請(qǐng)求成功、失敗、超時(shí)和線程拒絕;服務(wù)錯(cuò)誤百分比超過(guò)了閾值,熔斷器開(kāi)關(guān)自動(dòng)打開(kāi),一段時(shí)間內(nèi)停止對(duì)該服務(wù)的所有請(qǐng)求;請(qǐng)求失敗,被拒絕,超時(shí)或熔斷時(shí)執(zhí)行降級(jí)邏輯,近實(shí)時(shí)地監(jiān)控指標(biāo)和配置的修改。
結(jié)合安徽開(kāi)放大學(xué)非學(xué)歷業(yè)務(wù)培訓(xùn)的特點(diǎn),使用先進(jìn)的信息化技術(shù)手段,對(duì)中臺(tái)建設(shè)規(guī)范、微服務(wù)進(jìn)行定義和劃分,設(shè)計(jì)了基于微服務(wù)架構(gòu)和中臺(tái)技術(shù)的非學(xué)歷培訓(xùn)平臺(tái)。該平臺(tái)有效融合了中臺(tái)技術(shù),促進(jìn)了各個(gè)業(yè)務(wù)系統(tǒng)的有效融合,實(shí)現(xiàn)了統(tǒng)一管理、數(shù)據(jù)共享以及應(yīng)用平臺(tái)的開(kāi)放性、可擴(kuò)展性等,平臺(tái)對(duì)原有的業(yè)務(wù)系統(tǒng)進(jìn)行了升級(jí)、改造、整合,對(duì)未來(lái)業(yè)務(wù)系統(tǒng)的擴(kuò)展留有接口,滿足非學(xué)歷培訓(xùn)業(yè)務(wù)的個(gè)性化需求。非學(xué)歷培訓(xùn)平臺(tái)建設(shè)業(yè)務(wù)流程復(fù)雜、業(yè)務(wù)數(shù)據(jù)量龐大,如何進(jìn)行恰當(dāng)?shù)膭澐峙嘤?xùn)業(yè)務(wù)的微服務(wù),是基于微服務(wù)架構(gòu)平臺(tái)設(shè)計(jì)的重要課題。下一步將圍繞整合非學(xué)歷相關(guān)培訓(xùn)業(yè)務(wù),結(jié)合分布式、顆?;?、均衡負(fù)載等方面做進(jìn)一步的研究。