学吧是一个基于微服务架构的生产级在线教育项目,面向成年人的非学历职业技能培训平台。集成了在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。用到了包括微服务开发中的各种热点问题,以及不同场景对应的解决方案。
点击空白处退出提示
学吧是一个基于微服务架构的生产级在线教育项目,面向成年人的非学历职业技能培训平台。集成了在线教育中核心的学习辅助系统、考试系统,电商类项目的促销优惠系统等等。用到了包括微服务开发中的各种热点问题,以及不同场景对应的解决方案。
分两端:
- 学生端:其核心业务主体就是学员,所有业务围绕着学员的展开
- 管理端:其核心业务主体包括老师、管理员、其他员工,核心业务围绕着老师展开
教师端主要功能:
- 课程分类管理:课程分类的增删改查
- 媒资管理:媒资的增删改查、媒资审核
- 题目管理:试题的增删改查、试题批阅、审核
- 课程管理:课程增删改查、课程上下架、课程审核、发布等等
学生端主要功能:课程学习、优惠促销、评价等
职责:
1. 负责实现学习服务,基于Redis合并写请求和DelayQueue实现断点续播功能,优化高并发的数据库写业务,使误差控制在15秒内。
2. 独立设计并实现问答评论模块,根据用户选择的匿名与否,记录问答或者评论信息,并产生对应的积分,通过RabbitMQ推送给积分系统。
3. 独立负责点赞服务的搭建与实现,用户前端发送点赞请求到达点赞服务,点赞服务负责存储点赞记录与点赞数量,并通过定时任务发送MQ消息通知业务方更新点赞数量。
4. 负责签到功能实现与优化,基于BitMap数据结构存储签到记录,通过MQ推送签到信息及积分到积分服务。
5. 负责积分排行榜功能实现,利用Redis的Zset存储本月实时排行榜数据。通过XXL-Job分片任务持久化历史榜单到Mysql数据库中,Mysql采用的是分库分表,利用MybatisPlus的动态表名来计算表名。
6. 负责优惠券管理功能,发放优惠券时利用按位加权求和算法和异步线程生成兑换码,并利用BitMap验证兑换码是否已经兑换。保证了兑换码的可读性、不可重兑、防爆刷和高效性。
7. 负责优惠券的领取功能,利用乐观锁和分布式锁Redisson解决并发安全问题,解决事务边界原因导致的锁失效问题,通过aspectj动态代理解决事务失效问题。
8. 负责实现通用分布式锁的封装,基于AOP、自定义注解、工厂模式和策略模式实现。
9. 负责优惠券的使用,通过查询所有可用优惠券,经过初筛、细筛、排列组合计算出所有可用优惠券组合,并基于CompleteableFuture并行计算每种组合的优惠明细,最后按照规则筛选出最优解。






评论