## 在线教育平台包含的微服务
在线教育平台服务端基于Spring Boot构建,采用Spring Cloud微服务框架。
持久层:MySQL、MongoDB、Redis、ElasticSearch
数据访问层:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等
业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring Data Redis等。
控制层:Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等
微服务治理:Eureka、Zuul、Hystrix、Spring Cloud Config等
![1584103004929](https://s1.ax1x.com/2020/03/13/8KcGTK.png)
## 1.1 CMS页面管理微服务( [xc-service-manage-cms](https://github.com/BinXUU/xc-online-backend/tree/master/xc-service-manage-cms),[xc-service-manage-cms-client](https://github.com/BinXUU/xc-online-backend/tree/master/xc-service-manage-cms-client) )
CMS(Content Management System)即内容管理系统,本项目对CMS系统的定位是对各各网站(子站点)页面的管理,本项目的CMS系统不去管理每个子网站的全部资源,比如:图片、CSS、html页面等,主要管理由于运营需要而经常变动的页面,从而满足根据运营需要快速开发、上线的需求。
> 功能包括:
1、站点管理,站点就是本项目各各子网站,站点信息包括:站点名称、站点域名、端口、服务器物理路径等。
2、模板管理,由于要对页面进行静态化,使用freemarker引擎技术,所以需要定义模板。
3、页面管理,包括:页面添加、页面修改、页面删除等操作。
4、页面预览,对页面静态化,在浏览器预览页面静态化内容。
5、页面发布,将页面静态化后发布到所属站点服务器,通过rabbitmq实现页面的解耦发布。
![1584198942042](https://s1.ax1x.com/2020/03/14/8ljAX9.png)
![1584198956715](https://s1.ax1x.com/2020/03/14/8ljZ01.png)
## 1.2 媒资管理微服务( [xc-service-manage-media](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-service-manage-media) , [xc-service-manage-media-processor](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-service-manage-media-processor) )
> 功能需求
每个教学机构都可以在媒资系统管理自己的教学资源,包括:视频、教案等文件。
- 媒资管理的主要管理对象是课程录播视频,包括:媒资文件的查询、视频上传、视频删除、视频处理等。
- 媒资查询:教学机构查询自己所拥有的媒体文件。
- 视频上传:将用户线下录制的教学视频上传到媒资系统。
- 视频处理:视频上传成功,系统自动对视频进行编码处理。
- 视频删除 :如果该视频已不再使用,可以从媒资系统删除
- 本项目采用 HLS 技术实现视频点播
1、使用FFmpeg对视频进行编码处理,生成m3u8文件及ts文件
2、使用Nginx作为媒体服务器
3、客户端使用video.js播放视频
## 1.3搜索微服务( [xc-service-search](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-service-search) )
![](https://s1.ax1x.com/2020/03/13/8Kc3ex.png)
## 1.4 文件上传微服务( [xc-service-oss-filesystem](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-service-oss-filesystem) )
使用阿里云oss服务实现图片上传的需求
## 1.5 网关微服务( [xc-govern-gateway](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-govern-gateway) )
> 架构图
![*](https://img-blog.csdnimg.cn/20181214102311483.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5ajIwMThneXE=,size_16,color_FFFFFF,t_70)
不管是来自于客户端(PC或移动端)的请求,还是服务内部调用。一切对服务的请求都会经过Zuul这个网关,然后再由网关来实现 鉴权、动态路由等等操作。Zuul就是我们服务的统一入口。
服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了`权限控制`等功能。为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。
> 主要功能
身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不相符的请求。(对jwt鉴权)
![1584092965569](https://s1.ax1x.com/2020/03/13/8KcMl9.png)
动态路由:动态地将请求路由到不同的后端集群。
![1584092126872](https://s1.ax1x.com/2020/03/13/8KcGTK.png)
负载均衡(loadBalance)
## 1.6 授权中心微服务( [xc-service-ucenter-auth](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-service-ucenter-auth) )
> Spring security + Oauth2完成用户认证及用户授权
认证授权流程如下:
1、用户请求认证服务完成身份认证。
2、认证服务下发用户身份令牌和JWT令牌,拥有身份令牌表示身份合法,Jwt令牌用于完成授权。
3、用户携带jwt令牌请求资源服务。
4、网关校验用户身份令牌的合法,不合法表示用户没有登录,如果合法则放行继续访问。
5、资源服务获取jwt令牌,根据jwt令牌完成授权
## 1.7 注册中心( [xc-govern-center](https://github.com/Binn-Xu/xc-online-backend/tree/master/xc-govern-center) )
> 基本架构
![img](https://img-blog.csdnimg.cn/2018121514422783.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5ajIwMThneXE=,size_16,color_FFFFFF,t_70)
- Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
- 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
- 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
- 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态
主要功能就是对各种服务进行管理。
## 如何启动项目
在虚拟机中通过docker进行以下中间件与数据库的配置:
- ES:搜索
- nginx:反向代理
- Rabbitmq:数据同步,消息中间件
- Redis:缓存
- mongodb:后端数据库
并将配置文件中所有和虚拟机相关的ip进行修改
本机中需要的配置:
- nginx:前端所有请求统一代理到网关,域名的反向代理
- host:实现域名访问
## 数据库与配置文件
封存在config文件夹下,包括项目中最终版本的nginx.conf,以及本项目所配套的完整mongodb和mysql数据库
没有合适的资源?快使用搜索试试~ 我知道了~
基于微服务的SpringBoot + Oauth2+ ElasticSearch + RabbitMQ 开发的在线教育系统
共551个文件
java:257个
class:149个
xml:36个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 120 浏览量
2024-05-14
22:25:05
上传
评论
收藏 24.35MB ZIP 举报
温馨提示
该项目利用了基于springboot + vue + mysql的开发模式框架实现的课设系统,包括了项目的源码资源、sql文件、相关指引文档等等。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
资源推荐
资源详情
资源评论
收起资源包目录
基于微服务的SpringBoot + Oauth2+ ElasticSearch + RabbitMQ 开发的在线教育系统 (551个子文件)
MediaUploadService.class 13KB
CoursePub.class 10KB
CourseIndex.class 10KB
CourseOff.class 9KB
CoursePre.class 9KB
CmsPage.class 9KB
weixinPayInformRequest.class 9KB
XcUser.class 8KB
MediaFile.class 8KB
XcMenu.class 7KB
HttpClient.class 7KB
CourseBase.class 7KB
XcTask.class 7KB
Teachplan.class 6KB
XcCompany.class 6KB
XcTaskHis.class 6KB
FileSystem.class 6KB
MediaVideoCourse.class 5KB
XcOrdersDetail.class 5KB
XcOrders.class 5KB
CourseMarket.class 5KB
PreViewCourse.class 5KB
ViewCourse.class 5KB
Snowflake.class 5KB
XcLearningCourse.class 5KB
CourseCode.class 5KB
CmsSiteServer.class 5KB
XcRole.class 5KB
HlsVideoUtil.class 5KB
CourseSearchParam.class 5KB
VideoUtil.class 5KB
Category.class 5KB
TeachplanMediaPub.class 4KB
CmsSite.class 4KB
MediaFileService.class 4KB
XcLearningList.class 4KB
AuthCode.class 4KB
MediaCode.class 4KB
OrderCode.class 4KB
ReportCourse.class 4KB
ReportCompany.class 4KB
FileSystemCode.class 4KB
UserBasicInfo.class 4KB
XcTeacher.class 4KB
UcenterCode.class 4KB
QueryPageRequest.class 4KB
MD5Util.class 4KB
TeachplanMedia.class 4KB
PreViewCourseMedia.class 4KB
ViewCourseMedia.class 4KB
XcUserRole.class 4KB
CourseView.class 4KB
CmsTemplate.class 4KB
PayOrderResult.class 3KB
PortalViewCode.class 3KB
SysDictionary.class 3KB
XcOauth2Util$UserJwt.class 3KB
Mp4VideoUtil.class 3KB
XcPermission.class 3KB
ExceptionCatch.class 3KB
XcOrdersPay.class 3KB
CourseControllerApi.class 3KB
CmsConfigModel.class 3KB
Test01.class 3KB
LearningCode.class 3KB
TeachplanNode.class 3KB
RabbitMQConfig.class 3KB
CmsCode.class 3KB
ResponseResult.class 3KB
CmsConfig.class 3KB
XcCompanyUser.class 3KB
MediaCourseResult.class 3KB
SnowflakeIdWorker.class 3KB
PayQrcodeResult.class 3KB
QueryResponseResult.class 3KB
CommonCode.class 3KB
UserTest.class 3KB
MediaUploadController.class 3KB
QueryMediaFileRequest.class 2KB
SysDictionaryValue.class 2KB
TeachplanExt.class 2KB
LoginRequest.class 2KB
AuthToken.class 2KB
CookieUtil.class 2KB
UserTokenStore.class 2KB
XcUserExt.class 2KB
QueryResult.class 2KB
UserToken.class 2KB
CourseInfo.class 2KB
CoursePic.class 2KB
TeachplanParameter.class 2KB
CategoryParameter.class 2KB
UploadFileResult.class 2KB
MediaFileResult.class 2KB
GenerateOrderNum.class 2KB
CmsPageResult.class 2KB
Swagger2Configuration.class 2KB
CreateOrderResult.class 2KB
OrderResult.class 2KB
CmsPageParam.class 2KB
共 551 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
枫蜜柚子茶
- 粉丝: 8974
- 资源: 5351
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM32芯片数据手册芯片资料STM32F10x闪存编程手册(2009年6月第6版)
- STM32芯片数据手册芯片资料STM32F10xxCDE局限性列表(2009年6月第5版)
- STM32芯片数据手册芯片资料STM32F10xx8-B局限性列表(2009年2月第6版)
- GF-ISSUEDDOMESTICGRNBOND(2014-2023年).xlsx
- STM32芯片数据手册芯片资料STM32F10xx4-6局限性列表(2009年2月第2版)
- STM32芯片数据手册芯片资料STM32F103ZET6
- 宝塔面板Nginx的Lua-Waf防火墙终极改进 动态封禁IP
- 999.fend-图文.html
- STM32芯片数据手册芯片资料STM32F103x8-B增强型系列中容量产品数据手册(2009年4月)
- java.自定义异常(处理方案示例).md
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功