在线教育平台架构设计

Posted licbc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线教育平台架构设计相关的知识,希望对你有一定的参考价值。

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集群+直播服务满足平台基础需求

第二期实现
第二阶段根据业务发展进行服务拆分、系统监控、日志平常、链路检测等环境的完善

第三期
第三阶段根据业务发展特点进行优化、重构系统架构

  
 

以上是关于在线教育平台架构设计的主要内容,如果未能解决你的问题,请参考以下文章

在线教育平台架构设计-数据库设计1期

云架构师容器云平台存储网络监控的架构设计与优化 | 在线辅导答疑

在线抢购平台_课程设计报告

要做好容器云平台性能架构设计,先了解这10个知识

金融行业云管平台架构设计常见难点解读

亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计