洪柏樺 毛文琪 瞿少成



摘要:針對傳統單體式架構在線教育平臺存在靈活性較低、可拓展性和穩定性不足等問題,設計了一種基于微服務架構的在線教育平臺。首先,該在線教育平臺采用Spring Cloud框架來搭建微服務;然后,利用Nacos組件和其他微服務組件搭建項目基礎環境;同時還選取MyBatis-Plus框架作為持久層的框架;最后利用Vue.js框架搭建前臺系統。該系統實現了線上課程的有效管理,滿足了用戶的個性化學習需求。相比與傳統單體式架構系統,該系統將不同服務模塊部署在不同服務器上,使用靈活、拓展方便、穩定性好,具有一定的實用價值。
關鍵詞:微服務;在線教育平臺;Spring Cloud;MyBatis-Plus;Vue.js
中圖分類號:TP319? ? ? 文獻標識碼: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 背景
近些年來,隨著互聯網的快速發展,基于網絡發展的新型教育形態正在風靡全球。人們快速增長的在線學習需求,推動了在線教育平臺的迅速發展[1]。今年,學校以及培訓機構無法進行線下教學,這更加推動了教育行業的線上轉變。在線教育的熱潮推動了各類在線教育平臺和工具的興起[2]。由于技術的局限性,許多傳統的在線教育平臺采用單體式架構進行開發,隨著業務規模的增長,單體式架構的系統在靈活性、可拓展性、穩定性和維護等方面存在一些瓶頸[3]。
于是,人們提出了微服務的設計理念,它是系統架構上的一種設計風格[4],其設計思想是將系統拆分成多個相互獨立運行和部署在不同服務器上的微型服務,服務之間通過HTTP/HTTPS或者RPC協議進行通信協作[5-6],這就使得系統的及時交付以及靈活拓展成為可能[7-8]。
設計了一種基于微服務架構的在線教育平臺,該平臺采用Spring Cloud框架來搭建微服務,將系統拆分為多個微型服務,使用阿里巴巴提供的Nacos組件作為服務注冊中心,選用MyBatis-Plus框架作為持久層框架,同時使用Vue.js框架搭建前臺系統。不同服務模塊部署在不同的服務器上,服務之間通過協作來完成系統的功能,克服了傳統單體式架構系統的缺點,系統部署靈活、可拓展性好、使用穩定,具有一定的實用價值。
2 系統總體設計
基于微服務架構的在線教育平臺總體架構如圖1所示。在設計基于微服務架構的在線教育平臺時,嚴格遵守代碼開發中“高內聚,低耦合”的準則,實現系統的可拓展性和開放性。運用微服務這種面向服務架構的思想,將系統劃分成互相獨立同時功能專一的多個小型服務。
所設計的在線教育平臺總體架構主要分為3層:
1)表現層:用戶與系統進行交互,主要功能是顯示從數據庫取得的數據和接受用戶傳輸的數據,分為前臺系統和后臺系統。后臺系統管理員獲得授權,就能夠擁有課程管理、講師管理、廣告管理、數據統計分析等權限;前臺系統是面向普通用戶的,普通? 用戶能夠查看相關的課程和講師,同時能夠購買自己感興趣的課程。
2)服務層:由資源上傳、統計分析和核心應用等多個相互獨立且功能專一的微型服務組成,服務之間通過協作來完成系統特定的功能。
3)數據層:與服務層進行數據交互,選取MySQL數據庫存儲在線教育平臺用戶數據、講師數據和訂單數據等其他數據。
3 系統詳細設計
3.1 系統功能需求設計
所設計的基于微服務架構的在線教育平臺分為前臺系統和后臺系統,前臺系統是面向普通用戶的,后臺系統是面向系統管理員的,系統用例圖如圖2所示。
根據圖2系統用例圖,設計了在線教育平臺系統的功能。如圖3所示,后臺系統主要有課程管理、講師管理和分類管理等功能。前臺系統的設計是關乎用戶們的使用體驗以及購買課程的意愿,因此前臺系統設計至關重要,前臺系統功能如圖4所示,主要有首頁數據顯示、講師信息和注冊登錄等功能。
3.2 數據表設計
數據庫選擇的是MySQL數據庫,采用多張表存儲相關的數據,部分數據表之間關系如圖5所示,數據表之間除了有一對一以及一對多兩種關系,還存在無關聯關系。
4 系統實現與測試
4.1 系統實現
詳細分析了系統的功能需求和設計了數據表后。使用IntelliJ IDEA和Visual Studio Code作為后端和前端開發工具,首先創建一個Maven工程,使用Spring Cloud框架來搭建微服務,將系統拆分為核心應用服務、訂單服務和資源上傳服務等幾個小型服務;其次配置服務注冊中心Nacos和其他微服務組件;同時選取MyBatis-Plus作為持久層框架,與數據庫交互;最后使用Vue.js作為前端框架,同時采用element-ui來設計頁面。
4.2 系統測試
首先啟動系統的各項服務,同時啟動Nacos客戶端,服務啟動之后,在服務注冊中心Nacos進行注冊,如圖6所示,在圖6服務列表中,可以知道各項服務已經在服務注冊平臺注冊了,有核心應用服務、訂單服務和資源上傳服務等。
系統部分實際效果如圖7和圖8所示,圖7為課程信息列表,后臺管理員可以查看課程列表和查詢課程;圖8為普通用戶注冊登錄,用戶可以在此頁面注冊和登錄賬號。
系統的功能測試選取了后臺系統和前臺系統的部分功能進行測試,如表1和表2所示。測試結果驗證了系統幾大核心功能運行正常,同時添加課程的正常使用,說明微服務注冊調用正常。系統功能響應時間都在500ms以內,滿足系統的響應時間需求。
5 結束語
設計了一種基于微服務架構的在線教育平臺,成功將系統拆分為資源上傳、統計分析和核心應用等多個相互獨立且功能專一的微型服務,這些微型服務模塊運行和部署在不同的服務器上,服務之間通過協作實現了系統的課程管理、課程購買、講師管理和用戶注冊登錄等功能,滿足了人們個性化學習的需求。該系統克服了傳統單體式架構系統的缺點,部署靈活,具有良好的拓展性和穩定性,有一定的實用價值。但是功能相對少,后期將完善系統功能。
參考文獻:
[1] 黃鵬,邊大成.融合化在線教育大勢所趨[N].中國電子報,2020-07-21(3).
[2] 柴俊武,趙月.基于學習理論的在線教育平臺選擇與應用探究[J].中國多媒體與網絡教學學報(上旬刊),2020(8):15-17.
[3] 張開琦,劉曉燕,王信,等.基于微服務架構的中醫信息服務系統設計與應用[J].電子測量技術,2020,43(3):1-5.
[4] 張進猛,蘇健,柴立巖.基于微服務架構的信息系統開發技術研究[J].電腦知識與技術,2020,16(10):273-274.
[5] 歐陽榮彬,王倩宜,龍新征.基于微服務的數據服務框架設計[J].華中科技大學學報(自然科學版),2016,44(S1):126-130.
[6] 黃嘉誠,董晶.基于微服務的智能檔案服務系統設計與實現[J].電子設計工程,2018,26(2):26-30.
[7] 方意,朱永強,宮學慶.微服務架構下的分布式事務處理[J].計算機應用與軟件,2019,36(1):152-158.
[8] 徐琛杰周翔彭鑫趙文耘.面向微服務系統的運行時部署優化[J].計算機應用與軟件,2018,35(10):85-93.
【通聯編輯:謝媛媛】