本栏目责任编辑:王力
本期推荐
一种基于微服务架构的在线教育平台设计与实现
洪柏桦,毛文琪,瞿少成
(华中师范大学物理科学与技术学院,湖北武汉430079)
摘要:针对传统单体式架构在线教育平台存在灵活性较低、可拓展性和稳定性不足等问题,设计了一种基于微服务架构的
在线教育平台。首先,该在线教育平台采用Spring Cloud 框架来搭建微服务;然后,利用Nacos 组件和其他微服务组件搭建项目基础环境;同时还选取MyBatis-Plus 框架作为持久层的框架;最后利用Vue.js 框架搭建前台系统。该系统实现了线上课程的有效管理,满足了用户的个性化学习需求。相比与传统单体式架构系统,该系统将不同服务模块部署在不同服务器上,使用灵活、拓展方便、稳定性好,具有一
定的实用价值。关键词:微服务;在线教育平台;Spring Cloud ;MyBatis-Plus ;Vue.js 中图分类号:TP319
文献标识码:A
文章编号:1009-3044(2021)04-0010-03
开放科学(资源服务)标识码(OSID ):
Design and Implementation of Online Education Platform Based on Microservice Architecture HONG Bai-hua,MAO Wen-qi,QU Shao-cheng
(College of Physical Science and Technology,Central China Normal University,Wuhan 430079,China)Abstract:Aiming at the problems of low flexibility,poor scalability and stability in traditional monolithic online education plat⁃forms,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 personal⁃ized learning.Compared with the traditional monolithic architecture system,this system deploys different service modules on differ⁃ent 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 组件作为服务注册中心,选用MyB⁃atis-Plus 框架作为持久层框架,同时使用Vue.js 框架搭建前台系统。不同服务模块部署在不同的服务器上,服务之间通过协作来完成系统的功能,克服了传统单体式架构系统的缺点,系统部署灵活、可拓展性好、使用稳定,具有一定的实用价值。
2系统总体设计
基于微服务架构的在线教育平台总体架构如图1所示。在设计基于微服务架构的在线教育平台时,严格遵守代码开发中“高内聚,低耦合”的准则,实现系统的可拓展性和开放性。运用微服务这种面向服务架构的思想,将系统划分成互相独立同时功能专一的多个小型服务。
收稿日期:2020-10-18基金项目:国家自然科学基金(项目编号:61673190/F030101)作者简介:
洪柏桦(1993—),男,湖北黄梅人,硕士,主要研究方向为软件工程、微服务;毛文琪(1996—),女,湖南桃源人,硕士,主要研
究方向为智能web 技术;瞿少成(1971—),男,湖北武汉人,教授,博士生导师,主要研究方向为智能信息处理与控制。
10
本期推荐
本栏目责任编辑:王
力
Computer Knowledge and Technology 电脑知识与技术
第17卷第4期(2021年2月)
图1在线教育平台总体架构
所设计的在线教育平台总体架构主要分为3层:1)表现层:用户与系统进行交互,主要功能是显示从数据库取得的数据和接受用户传输的数据,分为前台系统和后台系统。后台系统管理员获得授权,就能够拥有课程管理、讲师管理、广告管理、数据统计分析等权限;前台系统是面向普通用户的,普通用户能够查看相关的课程和讲师,同时能够购买自己感兴趣的课程。
2)服务层:由资源上传、统计分析和核心应用等多个相互独立且功能专一的微型服务组成,服务之间通过协作来完成系统特定的功能。
3)数据层:与服务层进行数据交互,选取MySQL 数据库存储在线教育平台用户数据、讲师数据和订单数据等其他数据。
3系统详细设计
3.1系统功能需求设计
所设计的基于微服务架构的在线教育平台分为前台系统和后台系统,前台系统是面向普通用户的,后台系统是面向系统管理员的,系统用例图如图2
所示。
图2系统用例图
根据图2系统用例图,设计了在线教育平台系统的功能。如图3所示,后台系统主要有课程管理、讲师管理和分类管理
等功能。前台系统的设计是关乎用户们的使用体验以及购买课程的意愿,因此前台系统设计至关重要,前台系统功能如图4所示,主要有首页数据显示、讲师信息和注册登录等功能。
图3后台系统功能
图4前台系统功能
3.2数据表设计
数据库选择的是MySQL 数据库,采用多张表存储相关的数
据,部分数据表之间关系如图5所示,数据表之间除了有一对一以及一对多两种关系,还存在无关联关系。
图5数据表关系
4系统实现与测试
4.1系统实现
详细分析了系统的功能需求和设计了数据表后。使用In⁃
telliJ IDEA 和Visual Studio Code 作为后端和前端开发工具,首先创建一个Maven 工程,使用Spring Cloud 框架来搭建微服务,将系统拆分为核心应用服务、订单服务和资源上传服务等几个小型服务;其次配置服务注册中心Nacos 和其他微服务组件;同
11
本栏目责任编辑:王力
本期推荐Computer Knowledge and Technology 电脑知识与技术第17卷第4期(2021年2月)
时选取MyBatis-Plus 作为持久层框架,与数据库交互;最后使用Vue.js 作为前端框架,同时采用element-ui 来设计页面。4.2系统测试
首先启动系统的各项服务,同时启动Nacos 客户端,服务启动之后,在服务注册中心Nacos 进行注册,如图6所示,在图6服务列表中,可以知道各项服务已经在服务注册平台注册了,有核心应用服务、
订单服务和资源上传服务等。
图6服务注册
系统部分实际效果如图7和图8所示,图7为课程信息列表,后台管理员可以查看课程列表和查询课程;图8为普通用户注册登录,
用户可以在此页面注册和登录账号。
图7
分布式和微服务的关系课程信息列表
图8用户注册登录
系统的功能测试选取了后台系统和前台系统的部分功能
进行测试,如表1和表2所示。测试结果验证了系统几大核心
功能运行正常,同时添加课程的正常使用,说明微服务注册调用正常。系统功能响应时间都在500ms 以内,满足系统的响应时间需求。
表1后台系统功能测试
功能模块添加课程添加讲师添加分类数据统计添加广告
响应时间/ms
378236357279305
功能是否完成
完成完成完成完成完成
表2前台系统功能测试
功能模块课程信息讲师信息课程评论课程购买
用户登录
响应时间/ms
343206423389452
功能是否完成
完成完成完成完成完成
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.
【通联编辑:谢媛媛】
12
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论