基于微服务架构开发在线教育网站CooperMiNi

Redis作为非关系型数据库为短信验证码、主页数据缓存等提供数据存储;

MyBatis-Plus作为持久层框架。

前端技术栈

Vue作为前端开发框架;

Element-ui作为后台管理系统模板框架;

nodejs作为JavaScript运行环境;

Echars作为数据图表工具。

第三方技术

阿里云OSS作为对象存储服务;

阿里云视频点播服务;

阿里云短信服务;

EsayExcel作为读取Excel工具;

后台管理系统

讲师管理

主要有讲师列表和添加讲师

添加讲师中主要是讲师头像,这里使用的是阿里云的OSS(对象存储)来存储讲师头像可以从eacher表中看到avatar字段中存储的是头像的地址,这里上传头像会调用后端的oss服务,这个服务就是上传头像或者文件的,在这个服务中设置AccessKey、accessKeySecret、endpoint以及bucketName就可以连接上你的阿里云OSS,同时也可以设置所存储的文件夹,具体业务细节可以参考阿里云OSS的SDK。

课程分类

课程分类这里课程采用的是一级分类和二级分类的划分模式,一级分类的id是二级分类的pid,以这样的形式来关联两种分类的关系。

导入课程分类这里使用了EsayExcel,首先从前端读取file文件,调用EasyExcel的read方法向里面传入文件输入流InputStream,所需要读取的实体类的class对象以及监听器SubjectExcelistener,具体的监听器实现流程可以参考EasyExcel官方文档。

课程管理

发布课程,首先是课程的基本信息的存入,然后是课程的大纲和小节的存储,这里存储课程小节时需要将本节的课程视频上传到阿里云的视频点播服务中,这里同样是将前端传回的文件流进行处理,这里使用的是vod模块微服务,与讲师头像上传类似,具体可以参考阿里云视频点播的SDK,最后是课程的发布,这里是对课程状态的改变。

课程列表,这里提供了查询功能以及对课程的编辑和删除功能。

统计分析

这里采用了微服务之间的调用,因为这个模块需要对不同的微服务中的数据进行统计,所以将这个模块单独创建为一个微服务来对其他微服务进行调用,这里调用的方法采用了Feign,使用方法为,首先先需要调用的服务中创建一个接口,在接口上加上@FeignClient("服务的name")(name可以在Nacos中看到,同时也要保证调用的服务于被调用的服务都要在Nacos中注册)将需要调用的方法复制过来,其中请求地址需要加上controller类的地址,为调用端的启动类上添加@EnableFeignClients注解,这样就可以调用其他微服务中的方法了。统计分析模块就是让其他模块为其提供所需要的数据,然后由statistics这个微服务处理。而前端是图表则采用了Echars这个工具来实现图表的显示。

前端网站

主页

轮播图采用独立的微服务,来实现轮播图。前端使用swiper组件来实现。

课程界面

主要用于显示课程以及根据课程分类来查找所需的课程。

课程详情界面

讲师界面

主要是显示全部讲师

讲师详情界面

主要显示讲师的详细信息以及讲师所讲的课程

注册采用了通过短信验证的方式实现注册

通过短信验证的方式,这里使用到了阿里的短信服务,短信服务使用独立的微服务模块,其中主要的实现流程为,首先我们通过前端获取到注册者的手机号,需要从Redis中查询在过去五分钟内是否已经发送过验证码,如果没有,我们在本地生成一个验证码然后发送到阿里云的短信服务,这里同样与OSS和视频点播服务一样需要regionId等,具体的实现流程可以参考阿里云短信服务的SDK,当用户收到短信后,将验证码输入后,数据完整的传入后端会通过Redis获取验证码,与注册者的验证码进行比对,如果相同将注册成功。

通过手机号密码的方式,首先从前端获取到用户的手机号和密码,这里需要先对手机号密码进行非空判断,当然也可以进行异常处理,验证成功后通过jwt工具生成一个token返回给前端。

本项目在编写中所遇到的问题

后端

跨域问题,在项目之初使用@CrossOrigin注解解决,之后结合前端使用nginx实现反向代理,前端只需访问一个地址就可以访问到所有微服务,在项目最后通过gateway网关来实现;

实体类注解偶尔失效例如:@TableField(fill=FieldFill.INSERT),解决办法Maven去clear或install一下;

服务端口号偶尔会被其他程序占用,在任务管理器中找到结束进程,或者直接重启电脑;

有时写mapper可能会用xml写一些复杂的sql,但在启动后找不到mapper,在配置文件中加上xml文件的路径,例如mybatis-plus.mapper-locations=classpath:com/atguigu/eduservice/mapper/xml/*.xml

当取url中传的值时最好加上@PathVariable注解,在取实体类参数是加上@RequestBody注解,本项目后端返回的值为JSON格式的所以在controller上也要加上@RestController注解。

前端

在向cookie传值是需要将值转换成JSON格式,在取值时要将值再转换回来;

THE END
1.微服务详解微服务架构是一种软件开发架构风格,它将系统功能拆分为多个独立的小型服务,每个服务专注于完成一个特定的业务功能,并通过轻量级通信协议(如 HTTP/REST、消息队列)进行交互。这种架构风格以模块化、解耦、独立部署为核心,广泛应用于现代软件开发中。 1.微服务的核心特点 https://blog.csdn.net/T_Y_F_/article/details/144245207
2.微服务架构设计模式:从服务拆分到服务组合,架构模式指南微服务架构设计模式 服务拆分 基于业务边界划分:将应用程序拆分为小型服务,每个服务都围绕着特定的业务边界进行构建。 基于功能拆分:根据应用程序的功能将服务进行拆分,例如用户管理服务、支付服务等。 通信机制 使用HTTP协议和RESTful风格的API进行服务之间的通信。 https://www.jianshu.com/p/71c55e46cae5
3.在线教育机构组织架构在线教育系统架构在线教育系统,分为前台网站系统和后台运营平台,B2C模式 开发。 项目前后端分离开发,后端采用SpringCloud微服务架构,持久层用的是MyBatis-Plus,微服务分库设计,使用Swagger生成接口文档。 前台用户系统包括:首页、课程、讲师、问答、文章等几大部分。 后台管理系统包括:讲师管理、课程分类管理、课程管理、统计分析、Banner管https://blog.51cto.com/u_56701/11553184
4.阿里云上云解决方案汇总,多种技术与行业解决方案助力企业上云阿里云上云解决方案有哪些? 目前阿里云发布的的解决方案有前端Web和移动应用程序开发、网站搭建、网络组网、数据库、迁云、云上运维、微服务、中间件、容器与K8S、Serverless、计算视觉、语音处理、自然语言处理、机器学习、数据分析、HPC、安全&合规、容灾&备份、CDN&视频云、安全办公、专有云、物联网等22种不同场景https://www.tengxunyun8.com/5468.html
5.基于Java的在线教育平台设计与实现.docx3.4.5微服务设置20 3.4.6数据库功能实现20 3.5安全问题21 3.6本章小结21 第4章系统测试22 4.1测试方法22 4.2人工测试22 4.3压力测试23 4.4性能优化24 4.5测试结论25 4.6本章小结27 结论28 致谢29 参考文献30 基于Java的在线教育平台摘要:现在的科技发展迅速,网络技术在不断的前进,随之而来的就是被网络技术所带https://max.book118.com/html/2022/0604/6015002220004153.shtm
6.通区扁担沟同利燕宝小学人人通空间教育信息化2.0是教育信息化发展到一定阶段的产物,可从三个维度来理解:一是时间维度的表象概念,将改革开放至今的教育信息化称为1.0时代,将开启新时代的教育信息化称为2.0时代[3];二是基于目标维度的内涵概念,教育信息化2.0是整个教育生态的重构,通过颠覆性地改变传统的教育模式和方法,最终致力于实现教育的现代化[4]http://tx.nxeduyun.com/index.php?r=space/school/theme/content/view&id=1048892
7.基于微服务和TCC分布式事务的在线教育平台设计方法研究第19 卷第 2 期 2020 年 6 月 南通航运职业技术学院学报 JOURNAL OF NANTON南G 通VO航CA运TI职ON业AL技&术T学EC院HN学IC报AL SHIPPING COLLEGE doi: 10.3969/j.issn.1671-9891.2020.02.011 Vol.19 No.2 Ju2n0.2200年20 基于微服务和 TCC 分布式事务的在线教育平台 设计方法研究 李经纬 1,韩树河 2 (1https://hyxb.jssc.edu.cn/oa/pdfdow.aspx?Sid=111
8.在线教育风口已来,这几个开源项目不能错过Gitee项目推荐项目简介:领课教育(roncoo-education)是基于领课网络多年的在线教育平台开发和运营经验打造出来的产品,致力于打造一个各行业都适用的分布式在线教育系统。系统采用前后端分离模式,前台采用vue.js为核心框架,后台采用Spring Cloud为核心框架。系统目前主要功能有课程点播功能,支持多家视频云的接入,课程附件管理功能,支持多家https://cloud.tencent.com/developer/article/1589844
9.天机学堂在线教育平台成功案例案例背景 天机学堂是一个基于微服务架构开发的在线教育平台,旨在为学生和教师提供高质量的教育资源和学习体验。平台包括视频课程、在线学习工具、互动讨论和学习社区等功能。学生可以根据自己的学习需求选择课程并参与在线学习。教师可以创建和管理课程内容,并与学生进行互动和评估。亮点https://www.zbj.com/al/682479.html
10.媒体融合论文要想让体育新闻有更多的观众,促进体育新闻的发展,就要积极转变原来传统的单一传播新闻模式,让大众也能够参与到新闻讨论中来,利用多种平台,让大众能够对体育赛事发表自己的看法与见解,让大众也有权利发表新闻,关注受众的精神需求。让消费者满意,这是任何一个商业社会都不能违背的真理,体育事业也如此,要满足大众的需要,https://www.ruiwen.com/lunwen/6434108.html
11.在线教育平台系统架构图流程图模板在线教育平台技术架构 spring cloud 微服务 在线教育 架构 系统架构 作者其他创作 大纲/内容 支付系统 路由分配 搜索服务 监控后台 公共服务 任务调度 Skywalking链路追踪 文档服务 网关 作业管理 终端设备 流程引擎 harbor 客户系统 在线教育平台架构 Sentinel熔断限流 触达中心 ELK日志中心 前端层 HDFS 报表服务 https://www.processon.com/view/5f05966c5653bb2925d44652
12.巨推学院【巨推学院】专注于营销、推广、运营、SEO人才的在线教育培训平台。有SEO培训,营销推广培训,新媒体营销培训,社群运营培训,网站运营培训等https://www.jutuiedu.com/
13.微服务教程:从入门到实践实际项目中的微服务应用微服务架构在实际项目中有着广泛的应用,例如:电商平台:将订单、支付、库存等业务拆分为多个微服务。 在线教育平台:将课程管理、用户管理、支付等业务拆分为多个微服务。微服务设计中的常见问题及解决方案服务间通信: 使用消息队列和异步通信可以提高系统的稳定性和响应速度。 示例代码:使用RabbitMQ进https://www.imooc.com/article/372841
14.山东省教育云平台登录入口官网(山东省教育云平台登录入口手机版家长关注“潍坊教育微服务”微信公众号,登录“潍坊教育微服务平台”后进行查询预约。成绩发布后,系统通过微信消息推送到预约查询的微信号(或通过短信发送到手机)。推送时间过后,家长也可再次登录该微信公众号查询成绩。 注意:必须微信关注“潍坊教育微服务”微信公众号,否则无法接收到微信消息推送。 https://www.vsaren.com/79601.html
15.停课不停学!高校开学首日授课平台集体“崩了”线上教育风口持续【停课不停学!高校开学首日授课平台集体“崩了” 线上教育风口持续】艾媒咨询数据显示,2018年中国在线教育用户规模超过2亿人,到2020年有望达到3亿;2018年中国在线教育市场规模超过2500亿元,2020年将超过5000亿元。(券商中国) 在东方财富看资讯行情,选东方财富证券一站式开户交易>> https://finance.eastmoney.com/a/202002181386766621.html
16.头条课头条课_智能在线教育平台提供在线教育私有化解决方案,包括网校系统搭建,在线学习系统源码,网课软件源码,在线教育系统搭建等,涵盖功能全面,直播点播,互动班级,作业打卡,考试题库,推广营销等。http://www.toutiaoke1688.com/
17.在线教育解决方案教育行业教育在线培训解决方案华为云在线培训平台可以智能地将一个云题库与学习需要对接,通过华为云在线协同服务帮助学生完成学习目标;例如学生可以在线学习与自助学习同步的课程云服务,然后同步作答题目,作答完成后由系统智能为你呈现解题过程辅助你提高学习成绩https://www.huaweicloud.com/solution/ces/
18.教育部《高等学校数字校园建设规范(试行)》为深入贯彻落实党的十九大和十九届二中、三中、四中、五中全会精神,扎实推进教育信息化2.0行动计划,积极发展“互联网+教育”,推动信息技术与教育教学深度融合,提升高等学校信息化建设与应用水平,支撑教育高质量发展,特制定《高等学校数字校园建设规范(试行)》。现予发布,请参照执行。 https://jjxy.sszss.com/zcfg/13693.htm
19.社区工作人员工作总结18篇总结是指对某一阶段的工作、学习或思想中的经验或情况加以总结和概括的书面材料,它可以帮助我们总结以往思想,发扬成绩,为此要我们写一份总结。那么总结要注意有什么内容呢?下面是小编收集整理的社区工作人员工作总结,供大家参考借鉴,希望可以帮助到有需要的朋友。 https://mip.oh100.com/a/202303/6312973.html
20.字节点点强大的考试管理系统,使用golang微服务高并发架构,从建立题库到发布考试操作简单快速,支持同时百万级别在线考试。 支持学校解决线上云教学、线下混合式教学;支持企业内部岗位培训、入职培训、学习成果检测;支持培训机构搭建自己的公开课培训平台。 立即免费试用 https://bytedots.cn/
21.学习通电脑版下载2024最新学习通pc版免费下载安装学习通电脑版是一款专业可靠的在线教育平台,基于微服务架构打造,旨在共享与传播知识。学习通电脑版内含超星20余年来积累的海量的图书、期刊、报纸、视频、原创等资源,支持图书馆藏书借阅查询、电子资源搜索下载、学习学校专业课程、小组讨论等功能。学习通电脑版涵盖的知识层面相当广泛,内置超过百万册电子图书、中外文献元数据http://www.onlinedown.net/soft/10002486.htm
22.智能在线教育系统开发:重塑教育未来的创新之路系统设计是智能在线教育系统开发的关键环节。在设计阶段,需要考虑系统架构、功能模块和数据模型等方面。选择合适的系统架构(如微服务架构或云架构)以确保系统的稳定性和可扩展性;划分功能模块(如用户管理、课程管理、学习管理、智能推荐、数据分析等)以明确系统的各项功能;设计合理的数据模型以确保数据的完整性和一致性。https://www.pbids.com/aboutUs/pbidsNews/1861300381218344960