洪柏樺 毛文琪 瞿少成
摘要:針對傳統(tǒng)單體式架構(gòu)在線教育平臺存在靈活性較低、可拓展性和穩(wěn)定性不足等問題,設(shè)計了一種基于微服務(wù)架構(gòu)的在線教育平臺。首先,該在線教育平臺采用Spring Cloud框架來搭建微服務(wù);然后,利用Nacos組件和其他微服務(wù)組件搭建項目基礎(chǔ)環(huán)境;同時還選取MyBatis-Plus框架作為持久層的框架;最后利用Vue.js框架搭建前臺系統(tǒng)。該系統(tǒng)實現(xiàn)了線上課程的有效管理,滿足了用戶的個性化學(xué)習(xí)需求。相比與傳統(tǒng)單體式架構(gòu)系統(tǒng),該系統(tǒng)將不同服務(wù)模塊部署在不同服務(wù)器上,使用靈活、拓展方便、穩(wěn)定性好,具有一定的實用價值。
關(guān)鍵詞:微服務(wù);在線教育平臺;Spring Cloud;MyBatis-Plus;Vue.js
中圖分類號:TP319? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)04-0010-03
Abstract: Aiming at the problems of low flexibility, poor scalability and stability in traditional monolithic online education platforms, an online education platform based on the microservice architecture is designed. First, the online education platform uses the Spring Cloud framework to build microservices; second, it uses Nacos component and other microservice components to build the basic project environment; at the same time, it also selects My Batis-Plus as the persistence layer framework; finally uses Vue.js to build the front-end system. This system realizes the effective management of courses and meets the needs of people's personalized learning. Compared with the traditional monolithic architecture system, this system deploys different service modules on different servers, which is flexible in use, convenient in expansion, stable, and has certain practical value.
Key words: microservice; online education platform; spring cloud; mybatis-plus; vue.js
1 背景
近些年來,隨著互聯(lián)網(wǎng)的快速發(fā)展,基于網(wǎng)絡(luò)發(fā)展的新型教育形態(tài)正在風(fēng)靡全球。人們快速增長的在線學(xué)習(xí)需求,推動了在線教育平臺的迅速發(fā)展[1]。今年,學(xué)校以及培訓(xùn)機(jī)構(gòu)無法進(jìn)行線下教學(xué),這更加推動了教育行業(yè)的線上轉(zhuǎn)變。在線教育的熱潮推動了各類在線教育平臺和工具的興起[2]。由于技術(shù)的局限性,許多傳統(tǒng)的在線教育平臺采用單體式架構(gòu)進(jìn)行開發(fā),隨著業(yè)務(wù)規(guī)模的增長,單體式架構(gòu)的系統(tǒng)在靈活性、可拓展性、穩(wěn)定性和維護(hù)等方面存在一些瓶頸[3]。
于是,人們提出了微服務(wù)的設(shè)計理念,它是系統(tǒng)架構(gòu)上的一種設(shè)計風(fēng)格[4],其設(shè)計思想是將系統(tǒng)拆分成多個相互獨立運行和部署在不同服務(wù)器上的微型服務(wù),服務(wù)之間通過HTTP/HTTPS或者RPC協(xié)議進(jìn)行通信協(xié)作[5-6],這就使得系統(tǒng)的及時交付以及靈活拓展成為可能[7-8]。
設(shè)計了一種基于微服務(wù)架構(gòu)的在線教育平臺,該平臺采用Spring Cloud框架來搭建微服務(wù),將系統(tǒng)拆分為多個微型服務(wù),使用阿里巴巴提供的Nacos組件作為服務(wù)注冊中心,選用MyBatis-Plus框架作為持久層框架,同時使用Vue.js框架搭建前臺系統(tǒng)。不同服務(wù)模塊部署在不同的服務(wù)器上,服務(wù)之間通過協(xié)作來完成系統(tǒng)的功能,克服了傳統(tǒng)單體式架構(gòu)系統(tǒng)的缺點,系統(tǒng)部署靈活、可拓展性好、使用穩(wěn)定,具有一定的實用價值。
2 系統(tǒng)總體設(shè)計
基于微服務(wù)架構(gòu)的在線教育平臺總體架構(gòu)如圖1所示。在設(shè)計基于微服務(wù)架構(gòu)的在線教育平臺時,嚴(yán)格遵守代碼開發(fā)中“高內(nèi)聚,低耦合”的準(zhǔn)則,實現(xiàn)系統(tǒng)的可拓展性和開放性。運用微服務(wù)這種面向服務(wù)架構(gòu)的思想,將系統(tǒng)劃分成互相獨立同時功能專一的多個小型服務(wù)。
所設(shè)計的在線教育平臺總體架構(gòu)主要分為3層:
1)表現(xiàn)層:用戶與系統(tǒng)進(jìn)行交互,主要功能是顯示從數(shù)據(jù)庫取得的數(shù)據(jù)和接受用戶傳輸?shù)臄?shù)據(jù),分為前臺系統(tǒng)和后臺系統(tǒng)。后臺系統(tǒng)管理員獲得授權(quán),就能夠擁有課程管理、講師管理、廣告管理、數(shù)據(jù)統(tǒng)計分析等權(quán)限;前臺系統(tǒng)是面向普通用戶的,普通? 用戶能夠查看相關(guān)的課程和講師,同時能夠購買自己感興趣的課程。
2)服務(wù)層:由資源上傳、統(tǒng)計分析和核心應(yīng)用等多個相互獨立且功能專一的微型服務(wù)組成,服務(wù)之間通過協(xié)作來完成系統(tǒng)特定的功能。
3)數(shù)據(jù)層:與服務(wù)層進(jìn)行數(shù)據(jù)交互,選取MySQL數(shù)據(jù)庫存儲在線教育平臺用戶數(shù)據(jù)、講師數(shù)據(jù)和訂單數(shù)據(jù)等其他數(shù)據(jù)。
3 系統(tǒng)詳細(xì)設(shè)計
3.1 系統(tǒng)功能需求設(shè)計
所設(shè)計的基于微服務(wù)架構(gòu)的在線教育平臺分為前臺系統(tǒng)和后臺系統(tǒng),前臺系統(tǒng)是面向普通用戶的,后臺系統(tǒng)是面向系統(tǒng)管理員的,系統(tǒng)用例圖如圖2所示。
根據(jù)圖2系統(tǒng)用例圖,設(shè)計了在線教育平臺系統(tǒng)的功能。如圖3所示,后臺系統(tǒng)主要有課程管理、講師管理和分類管理等功能。前臺系統(tǒng)的設(shè)計是關(guān)乎用戶們的使用體驗以及購買課程的意愿,因此前臺系統(tǒng)設(shè)計至關(guān)重要,前臺系統(tǒng)功能如圖4所示,主要有首頁數(shù)據(jù)顯示、講師信息和注冊登錄等功能。
3.2 數(shù)據(jù)表設(shè)計
數(shù)據(jù)庫選擇的是MySQL數(shù)據(jù)庫,采用多張表存儲相關(guān)的數(shù)據(jù),部分?jǐn)?shù)據(jù)表之間關(guān)系如圖5所示,數(shù)據(jù)表之間除了有一對一以及一對多兩種關(guān)系,還存在無關(guān)聯(lián)關(guān)系。
4 系統(tǒng)實現(xiàn)與測試
4.1 系統(tǒng)實現(xiàn)
詳細(xì)分析了系統(tǒng)的功能需求和設(shè)計了數(shù)據(jù)表后。使用IntelliJ IDEA和Visual Studio Code作為后端和前端開發(fā)工具,首先創(chuàng)建一個Maven工程,使用Spring Cloud框架來搭建微服務(wù),將系統(tǒng)拆分為核心應(yīng)用服務(wù)、訂單服務(wù)和資源上傳服務(wù)等幾個小型服務(wù);其次配置服務(wù)注冊中心Nacos和其他微服務(wù)組件;同時選取MyBatis-Plus作為持久層框架,與數(shù)據(jù)庫交互;最后使用Vue.js作為前端框架,同時采用element-ui來設(shè)計頁面。
4.2 系統(tǒng)測試
首先啟動系統(tǒng)的各項服務(wù),同時啟動Nacos客戶端,服務(wù)啟動之后,在服務(wù)注冊中心Nacos進(jìn)行注冊,如圖6所示,在圖6服務(wù)列表中,可以知道各項服務(wù)已經(jīng)在服務(wù)注冊平臺注冊了,有核心應(yīng)用服務(wù)、訂單服務(wù)和資源上傳服務(wù)等。
系統(tǒng)部分實際效果如圖7和圖8所示,圖7為課程信息列表,后臺管理員可以查看課程列表和查詢課程;圖8為普通用戶注冊登錄,用戶可以在此頁面注冊和登錄賬號。
系統(tǒng)的功能測試選取了后臺系統(tǒng)和前臺系統(tǒng)的部分功能進(jìn)行測試,如表1和表2所示。測試結(jié)果驗證了系統(tǒng)幾大核心功能運行正常,同時添加課程的正常使用,說明微服務(wù)注冊調(diào)用正常。系統(tǒng)功能響應(yīng)時間都在500ms以內(nèi),滿足系統(tǒng)的響應(yīng)時間需求。
5 結(jié)束語
設(shè)計了一種基于微服務(wù)架構(gòu)的在線教育平臺,成功將系統(tǒng)拆分為資源上傳、統(tǒng)計分析和核心應(yīng)用等多個相互獨立且功能專一的微型服務(wù),這些微型服務(wù)模塊運行和部署在不同的服務(wù)器上,服務(wù)之間通過協(xié)作實現(xiàn)了系統(tǒng)的課程管理、課程購買、講師管理和用戶注冊登錄等功能,滿足了人們個性化學(xué)習(xí)的需求。該系統(tǒng)克服了傳統(tǒng)單體式架構(gòu)系統(tǒng)的缺點,部署靈活,具有良好的拓展性和穩(wěn)定性,有一定的實用價值。但是功能相對少,后期將完善系統(tǒng)功能。
參考文獻(xiàn):
[1] 黃鵬,邊大成.融合化在線教育大勢所趨[N].中國電子報,2020-07-21(3).
[2] 柴俊武,趙月.基于學(xué)習(xí)理論的在線教育平臺選擇與應(yīng)用探究[J].中國多媒體與網(wǎng)絡(luò)教學(xué)學(xué)報(上旬刊),2020(8):15-17.
[3] 張開琦,劉曉燕,王信,等.基于微服務(wù)架構(gòu)的中醫(yī)信息服務(wù)系統(tǒng)設(shè)計與應(yīng)用[J].電子測量技術(shù),2020,43(3):1-5.
[4] 張進(jìn)猛,蘇健,柴立巖.基于微服務(wù)架構(gòu)的信息系統(tǒng)開發(fā)技術(shù)研究[J].電腦知識與技術(shù),2020,16(10):273-274.
[5] 歐陽榮彬,王倩宜,龍新征.基于微服務(wù)的數(shù)據(jù)服務(wù)框架設(shè)計[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2016,44(S1):126-130.
[6] 黃嘉誠,董晶.基于微服務(wù)的智能檔案服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2018,26(2):26-30.
[7] 方意,朱永強(qiáng),宮學(xué)慶.微服務(wù)架構(gòu)下的分布式事務(wù)處理[J].計算機(jī)應(yīng)用與軟件,2019,36(1):152-158.
[8] 徐琛杰周翔彭鑫趙文耘.面向微服務(wù)系統(tǒng)的運行時部署優(yōu)化[J].計算機(jī)應(yīng)用與軟件,2018,35(10):85-93.
【通聯(lián)編輯:謝媛媛】