198
随着互联网通信技术的高速发展以及当前疫情的大背景下,我国教育形式也不再局限于传统的线下授课模式。线上教育开始成为人们学习提高的重要形式,但是传统的系统架构应对爆发式的在线学习显然无法满足大规模的用户访问需求。因此提出了基于SpringCloud微服务的在线视频教育系统。本系统通过需求分析和设计按照功能将系统划分为教育管理、视频管理、用户管理、支付管理微服务模块。最后对系统的关键功能模块和部分复杂技术的实现进行了详细的介绍。此系统为大用户量的访问提供了可靠保障。同时采用微服务的形式也为系统后期的扩展性提供了可能。
0 引言
传统授课受限于地点和人数的限制,在线教育已经成为人们学习的新的学习方式,相对于传统教育在线教育不受制于空间和人数。通过在线学习可以让人们随时随地的进行学习,可以节约学习的时间提高人们的学习效率。目前虽然许多学校都有自己的在线教育系统但这些系统由于大多采用的是传统的单体技术架构。前后端不能分离,前后端耦合系统的扩展性不强,不能对系统的模块根据用户的使用频率进行灵活的部署。此时用户量多的情况下很容易出现卡顿甚至崩溃死机的情况。因此采用微服务架构可以很
好的解决上述问题。在微服务架构下通过将系统按照功能模块进行拆分成不同的微服务,每个微服务可以单独部署。服务之间可以通过Feign等技术实现调用。本系统通过使用基于SpringCloud的微服务框架,可以有效的解决代码耦合度高、后期系统可扩展性差、系统并发度不高、不能灵活部署等问题[1]。  1 微服务概述
微服务架构是相对于传统的单体结构而说的,传统单体架构主要是以单体框架为主。传统的单体架构所有的功能模块都集中在一个程序中,前台和后台之间以及后台各个功能模块之间的耦合度高。往往一处修改需要级联修改多处。导致代码维护难度成几何倍数增加。同时这种架构不能按照功能模块的使用频率进行灵活部署。微服务架构正是在此背景下产生的,微服务可以将一个程序安装功能划分为不同的模块。各个功能模块可以根据实际的业务环境动态的部署,访问量大的就多部署而访问量少的功能模块可以少部署。这些模块之间相互的调用可以通过插件从而实现了模块之间的松耦合度。
2 在线视频教育系统的技术选择和总体架构设计
本系统采用前后端分离的架构模式。该架构主要目的是让前端和后端开发可以同步进行最后部署可以分开部署。前端选用的框架主要是Vue等主流的前端框架。后端选用SpringCloud框架,该框架下包括不同功能的组件。按照功能划分选用的组件如下[2]:
(1)网关选择的是Zuul,网关主要负责对前台页面进行身份验证、路由管理、负载分配。前台的所有访
问后台的所有路径都通过网关按照路径分发到后台的不同微服务模块。
(2)注册中心选择的是Eureka,各个微服务模块都将自己注册到Eureka Server。
(3)服务间调用使用组件OpenFeign,通过此组件实现不同的微服务之间可以通过发送Http请求进行彼此之间
收稿日期:2021-09-05
*基金项目:2021年度黄河交通学院校级课题《数据库原理及应用教学资源库项目》(HHJTXY-2021kczyk098)作者简介:王超(1985—),男,河南焦作人,硕士,助教,研究方向:J2EE 信息系统设计和开发。基于SpringCloud 的在线视频教育系统的设计与实现*
黄河交通学院 王超 李晶晶 朱晶晶
中图分类号:TP311
文献标识码:A
文章编号:1007-9416(2021)12-0198-03
DOI:10.19695/jki12-1369.2021.12.64
. All Rights Reserved.
2021年第 12 期
199
的访问。
(4)由于服务之间存在依赖关系因此如果一个服务出现了问题容易引起其他服务出现问题从而引起雪崩。因此需要Sentinal组件,通过他保障调用其他服务出现问题时候有错误处理。从而提高整个系统的可靠性。
系统的总体结构设计如图1所示。
3 各功能模块设计
3.1 用户模块
(1)前台用户进入登录模块点击扫码登录进入支付宝扫码登录用户扫码后返回到在线视频教育系统的登录处理中,后台审核用户信息如果成功将用户信息保存到后台数据库再返回到主界面,失败就返回失败信息[3]。
(2)后台管理员输入用户名、密码注册,后台将相关管理员信息保存到后台数据库。
3.2 教育模块
(1)前台用户点击讲师向后台请求讲师信息,后台从数据库查询讲师信息返回前台。前台用户点击课程向后台请求课程信息返回前台。前台用户选择某一课程跳转到课程详情页如果课程是免费的可以点击观看跳转到播放页播放课程。如果课程是收费的先审核用户是否登录如果已经登录跳转到支付界面,如果未登录则跳转到登录界面。前台用户点击课程收藏,判断其是否登录如果未登录跳转到登录页面。如果已经登录则将课程信息和用户信息保存到课程收藏表中。
(2)后台用户点击添加讲师输入讲师信息向后台发送请求后台将讲师信息保存。点击查看讲师将发送查询请求后台,后台从数据库查询讲师信息分页返回前台。后台用户点击发布课程输入课程信息已经添加课程章节和课程文件后将课程信息保存数据库将课程文件保存到服务器。点击查询课程则后台查询课程并分页后返回前台。点击导入,按指定格式导入分类信息。后台将分类信息批量保存。前台点击查询分类,后台将分类信息从数据库查询出来返回前台。
3.3 视频模块
(1)前台用户在课程详情页通过点击立即播放将视频路径传递到播放页,视频播放页发送请求获取到真实路径进行播放视频课程。
(2)后台用户添加课程时选择某个小节点击上传视频调用后台程序将视频保存到服务器,点击确定将小节里的视频地址保存到数据库,后台用户选择视频点删除则调用后台删除方法将视频从服务器删除,
点击确定将小节中的视频信息从数据库删除。
3.4 支付模块
前台用户选择收费课程点击立即购买如果用户没有登录则跳转到登录页面,如果已经登录则跳转到订单确认页面点击支付后向后台发送支付请求后台将支付信息发送给支付宝接口,支付成功后跳转到在线视频教育系统后台,后台更新订单的支付信息后跳转到购买过的课
免费mysql视频教程
图1 在线视频教育系统架构
Fig.1  Online video education system architecture
王超 李晶晶 朱晶晶:基于S p r i n g C l o u d 的在线视频教育系统的设计与实现
. All Rights Reserved.
第  39  卷                      数字技术与应用    www.szjsyyy
200
程详情页。4 系统部分复杂模块实现
4.1 前台用户扫码登录
首先前台用户点击扫码登录按钮通过向后台发送异步请求到用户中心微服务模块的登录方法该方法首先到配置文件获取应用标识号以及重定向的地址,然后进行字符串拼接后跳转到支付宝授权登录界面,用户扫码登录后跳转到在线视频教育系统的回调方法中,该方法接受支付宝服务返回的授权码,接受到授权码后该方法向支付宝服务发送请求获取授权Token信息,通过该参数获取用户的用户标识、昵称、电话、头像等信息。获取该信息后再本地数据库查该用户是否之前已登录如果登录了就不用再保存这些用户信息,如果之前未登录则在本地数据库保存用户信息,接着通过JWT生成Token信息返回前台页面。前台获取Token后将Token放到Cookie中,保证用户在一段时间内可以保持登录状态。接着刷新页面后,前台向后台请求并根据Token获取会员信息返回到前台页面[4]。
4.2 课程添加中封面添加实现
当添加课程选择课程封面并添加的时候将图片发到后台,后台方法将图片进行Base64转码后返回前台。前台点击保存后向后台发送请求将转码后的图片保存到后台数据库。采用这样可以减少向后台发送。避免图片信息泄露。
4.3 视频播放模块实现
前台用户点击观看的视频教程,此时向后台发送请求,后台会接受前台的地址路径,但这种路径后台服务器是无法识别的需要转换为具体的磁盘位置,我们这个时候就需要把本地的路径和网络地址路径做映射处理从而实现对本地视频课程的访问和播放[5]。
4.4 支付实现
前台用户选择课程后点击购买按钮触发下订单方法该方法向后台发送创建订单请求,网关服务判断用户是否登录如已经登录创建订单返回前台后跳转到下订单页面,如果没有登录则跳转到登录页。用户点击去支付后通过向后台发送支付请求后台方法依据获取的订单号查询订单后在配置文件中获取支付网关、应用标识、编码格式、签名
算法类型等参数后向支付宝发送支付请求,支付宝效验信息后跳转到支付页面,用户扫码支付后,支付宝跳转到支付成功方法,此方法效验成功后更新数据库订单信息为已经支付,最后跳转到前台已经购买的课程页面。
4.5 网关鉴权实现
创建网关鉴权类后继承网关过滤器类后重写过滤器方法,此方法添加我们需要过滤鉴权的路径,然后重写运行方法我们根据是否能获取到Token信息判断前台用户是否登录。如果鉴权失败返回对应错误编
号,前台依据编号重定向到登录页面。如果鉴权成功则到对应的微服务模块的方法进行对应的业务逻辑处理。
4.6 通过功能模块
通用功能模块主要是将后台返回前台消息的通用方法和异常处理以及通用的一些工具类文件放在此模块。
5 结论
系统逐渐由单体架构到微服务架构开发已经是不可避免的趋势。因此在线视频教育系统的设计开发就选用了微服务架构。我们依据业务实际和技术的可行性已经开发效率采用的前后端分离的技术路线。前台选择的Vue 后台选择的SpringCloud,在此基础上我们设计了在线视频教育系统的整个架构,然后对系统按照需求将不同将系统划分为多个微服务模块。最后实现了各个微服务模块。此系统的设计和实现为同类教育系统的实现提供了新的方向。
引用
[1] 林宇聪,冯祥胜,叶健安.基于分布式框架的城市内涝智慧监测系统[J].电脑知识与技术,2021,17(10):30-32+36.[2] 徐维,刘屹.微服务技术框架在智慧警务应用中的优势和缺点[J].信息通信,
2019(8):82-83.
[3] 张斌,任富彬,沈炜.基与SpringCloud 的食品安全溯源系统的设计与实现[J].软件工程,2019,22(8):27-30.
[4] 任女尔,陈辰,魏金津.基于微服务的车辆监控系统架构设计与实现[J].电脑知识与技术,2018,14(17):218-219.[5] 李月晴,范纯超,张元生.基于微服务架构的生产管控平台研究[J].金属矿山,2021(2):173-178.
. All Rights Reserved.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。