# e学堂 **Repository Path**: yjf2023/xuecheng-plus-project ## Basic Information - **Project Name**: e学堂 - **Description**: Java 项目实践:e学堂 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-17 - **Last Updated**: 2023-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot ## README # e学堂 本项目总体功能已基本实现,后续对具体的细节进行优化完善 #### 项目介绍 本项目是一个在线学习平台,包括了用户端和运营端,采用前后端分离架构,后端采用SpringBoot、SpringCloud框架开发,并按照模块功能将系统划分为不同的微服务。 - 技术栈:Spring Boot + Spring Cloud + MySQL + Redis + RabbitMQ + Nacos + MinIO #### 项目亮点 - 负责用户登录模块的开发,基于OAuth2 协议统一身份认证入口,满足用户通过账号密码、手机验证和微信扫码等多样化的登录方式需求。 - 使用网关对所有的访问请求集中认证,再由各个微服务负责具体的授权操作,通过认证授权分离的架构,保证非法请求在网关阶段被拦截,降低了下游服务的访问负担。 - 负责文件管理模块的开发,针对视频大文件实现秒传、断点续传、分片上传的功能,改善用户在发生异常情况下的传输体验。 - 基于MySQL 的主从复制实现数据库的读写分离,并通过对部分数据表进行索引优化,极大提高了系统整体的查询性能。 - 热点数据使用Redis+Caffeine 的两级缓存方案,解决了缓存击穿和穿透问题,本地缓存避免了请求Redis 的网络开销,查询速度进一步提高。 - 使用RabbitMQ 优化用户下单模块,将用户支付结果异步通知给其他服务,提高了网站的支付响应速度。 #### 软件架构 本项目包括了用户端和运营端,核心模块包括:内容管理模块、媒资管理模块、课程发布模块、认证授权模块、选课学习模块;