1、立项背景:该项目是一个提供用户线上看课、学习、模拟考试的学习平台
2、核心功能模块:
用户模块:用户个人信息管理
课程中心:各类课程查询、购买、试看、直播课等功能
学习中心:记录用户的学习记录,答题记录
答疑模块:学习期间遇到的问题,线上提交、老师答疑
题库模块:用户可以在视频学习后,进行试题训练检测学习成果
学服模块:用户购买课程后续跟踪服务
支付模块:课程购买付款(微信、支付宝、银行卡等)
3、业务流程(网页端和App端):
选课:用户登录后,进入首页,可以看到推荐的系统课和公开课,可以根据科目类型选择想要学习的课程进行购买,购买后可以在我的里面看到自己购买的课程
学习:进入我的页面,展示的是最新学习的课程,可以看到学习进度、时长等信息
题库:进入我的页面,可以看到自己的答题记录,也可以继续答题练习
1、使用微服务,按模块进行拆分:用户模块、课程与学习、答疑、题库等模块,技术:springboot + mysql + mongodb + redis + RabbitMQ,docker部署,注册中心Nacos,配置中心Apollo
2、主要负责 “课程与学习”模块:
与产品对接新需求,进行开发任务拆分、人员分配、进度把控等
负责复杂功能以及与其他模块对接(学服模块、题库模块等)
排查处理线上问题,保证程序正常运行
3、解决的问题:
1)redis缓存有效期加随机数,防止大量key过期导致的雪崩
2)有直播课时,提前进行用户学习数据预热,解决短时间内大量用户进入导致服务瘫痪
3)解决mq消息堆积,监控线上运行信息,根据日志和java堆分析,找到程序运行慢的位置,后,调整对应功能处理方案