在线教育平台架构设计
1. ⽬的
1.1. ⽬的
该架构设计主要针对在线教育平台建设过程中的核⼼需求进⾏设计,作为架构、设计、开发、测试、运维⼈员对系统的认识参考。
1.2. 名词解析:
系统:⼀个软件、⼀个平台,系统由各种个体组成,形成系统的整体能⼒
个体:⼦系统、模块、组件
架构:描述系统的组成个体、个体之间的关系以及个体之间协调运作的规则
框架:解决特定场景问题的规范,包含规则之上的基础功能,如:SrpingMVC解决MVC模式的问题;架构关注是结构,框架关注是规范⼦系统:⼦系统和系统概念⼀样,都⼀由⼀系统个体组件
模块:由⼀系统个体组成,通过接⼝来向外提供⼀定能⼒的个体
组件:完成特定功能的个体
2. 总体⽅案
[总体⽅案需要从整体上描述⽅案的结构,其核⼼内容就是架构图,以及针对架构图的描述,包括模块或者⼦系统的职责描述、核⼼流程]
在线教育平台架构主要包含以下⼏⽅⾯
1. 课程在线购买,学员签约、课程学习、在线练题及考试、交流社区
2. 课程⾳视频的管理、存储、在线播放
3. 视频的直播
主要针对在线教育平台的复杂业务场景进⾏重点设计,当前识别到的复杂业务场景主要包含以下⼏⽅⾯
1. 在线教育PC端端,⽇常的登录、浏览课程、购买课程并不会形成太⾼的并发,⽽⼀些职业课程临时⾼前,可能在线练习、模拟考试业务中出现⾼并发场景,形成⼀波访问⾼峰。
2. 平台在直播课程时,会遇到⼏千⼈、⼏万⼈同时在线观看直播、评论互动的并发访问压⼒
3. ⽇常学员在线学习观看视频对服务器、⽹络带宽的压⼒
4. 在线教育平台客户、订单、学习记录作系统重要数据,必须保证数据存储安全和完整。
3. 架构总览
3.1. 产品架构
在线考试平台采⽤分层架构,分为上层应⽤、核⼼业务和技术⽀撑三个层次。
1. 上层应⽤包括运营管理平台、PC端、APP、⼩程序和H5端
2. 应⽤层包括基础在线教育基础业务及⾳视频直播、点播业务;
3. 技术⽀撑层采⽤微服务架构和Dev/Ops流程保证项⽬实施
3.2. 技术架构
3.3. 架构设计关键点
3.3.1. 应⽤架构设计
考虑在线教育本⾝业务复杂度及后续新业务、新模式的尝试,根据业务功能拆分成10个模块,在实现上采⽤微服务架构落地,后续随着业务的发展,再进⾏⼀步拆分。
3.3.2. 数据库架构设计
在线教育平台的数据主要包含学员、课程、订单、题库、考试、学习记录等数据,这些数据并不会占⽤多少存储,但这些核⼼业务数据对平台运营⾄关重要,⼀旦丢失可能⽣成平台信誉和运营产⽣重要影响,因为数据存储的可靠性最为重要。
3.3.3. 消息队列架构设计
服务之间的数据同步以及推送消息、、邮件等场景会使⽤到消息队列,需要设计消息队列⽣产端和消费端的⾼可靠性,解决消息队列的重复发送、重复消费、消息丢失等异常情况。
3.3.
4. 缓存架构设计
课程的分类、热门课程、⽤户信息、登录会话以及微服务架构使⽤到的分布式锁等场景需要使⽤到缓存,缓存架构需要设计⾼可靠保障措施。
3.3.5. 核⼼业务流程
4. 架构演进规划
[通常情况下,规划和设计的需求⽐较完善,但如果⼀次性全部做完,项⽬周期可能会很长,因此可以采取分阶段实施,即:第⼀期做什
么、第⼆期做什么,以此类推]
第⼀期实现
采⽤基础微服务架构+MySQL集+Redis缓存架构+RocketMQ集+直播服务满⾜平台基础需求
第⼆期实现
第⼆阶段根据业务发展进⾏服务拆分、系统监控、⽇志平台、链路追踪等基础设施环境的完善
第三期免费mysql视频教程
第三阶段根据业务发展特点进⾏优化、重构系统架构
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论