基于大规模高并发的开放大学学习平台的设计与实现.pdf
《基于大规模高并发的开放大学学习平台的设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于大规模高并发的开放大学学习平台的设计与实现.pdf(5页珍藏版)》请在咨信网上搜索。
1、 2023 年第 11 期95计算机应用信息技术与信息化基于大规模高并发的开放大学学习平台的设计与实现张新海1 和 莉1ZHANG Xinhai HE Li 摘要 江苏开放大学通过在线学习平台进行开放教育教学,随着招生规模突破 16 万名学员,需要从底层架构出发重新设计能够满足大规模高并发访问的在线学习平台。在平台的开发中,后端使用Spring Boot实现,前端使用基于 React 的 Ant Design 实现,采用前后完全分离的开发模式,业务之间通过微服务松耦合实现,采用分布式集群部署实现了能够承载学校办学规模的在线学习平台。通过平台上线后的运行数据反馈,改进了学校的教学管理模式,降低了
2、学生在线学习过程中的个体孤独感,提高了学生的积极主动性,提升了开放教育的教学质量。关键词 江苏开放大学;学习平台;底层架构;高并发;Spring Boot;React doi:10.3969/j.issn.1672-9528.2023.11.0221.江苏开放大学 江苏南京 2100360 引言江苏开放大学是一所面向全体社会成员,通过现代信息技术进行远程开放教育的新型高校1。江苏开放大学在线学习平台就是江苏开放大学的虚拟校园,全省开放学员在虚拟校园中完成报名、选课、缴费、课程学习、考试、毕业、学位等学习全过程。开放大学的办学模式和学生规模与普通高校相比还有一定区别,普通高校的学生规模在 2 万
3、 8 万人之间,教学与管理基本都是在线下进行的,江苏开放大学目前在籍学员 16.2 万人,通过 5.4 万个虚拟班级进行在线教学,大规模高并发访问是开放大学学习平台的典型特征。1 大规模高并发系统研究的必要性和可行性1.1 平台运行规模角度分析通过对学校招生规模进行分析,2021 年招生 4.9 万人,2022 年招生 5.1 万人,预计 2023 年学员规模将达到 20 万人。根据教学运行的规律,每学期开学第一周为选课及缴费期,每位学员每学期选课数量约 5 门课程,16 万人一周累计选课约 100 万门次。通过对在线学习进行分析,每天平均 4 万学员在线学习2,每日的 PV 访问量约 100
4、 万次,如图 1。图 1 学习平台日 PV 访问量在如此大规模高并发访问量下,学习平台的底层架构设计显得尤为重要,架构的设计和技术选型直接决定着平台的性能。1.2 同类系统现状分析分析同类在线学习平台设计的技术架构,一般都是采用MVC 软件分层的思路进行设计和开发,即将系统分为 Model模型层、View 视图层和 Controller 控制层。Model 层通常采用 Mybits 实现程序的数据和业务逻辑,View 层根据开发团队的技术路线采用 Thymeleaf、Velocity、FreeMaker 等模板引擎实现用户的操作界面,Controller 层一般采用 Spring MVC提供
5、API 实现组装和解析视图层的数据。参照同类开放大学学习平台的技术架构,基本可以满足学校“十三五”规划中平台容纳 4 万 6 万人的招生规模。从学校“十四五”规划开始,招生规模已经突破 16 万人,传统意义上的技术架构在性能上已经不再适用,需要对底层架构进行重新设计以适用于大规模高并发访问的应用场景。系统的主要瓶颈在于大并发访问、高 I/O 读写和权限校验。从系统并发性能分析,Spring MVC 是同步阻塞式 Web 架构,每一个请求需要对应一个线程去处理,大并发访问时会出现访问阻塞甚至系统瘫痪。从 I/0 读写分析,Tomcat7 以下默认的是阻塞式 BIO 模式,Tomcat 线程利用率
6、较低。从业务鉴权角度分析,用户在系统中的所有行为都需要用到权限校验,十几万名用户的权限 session 都存储在服务器端,服务器的负载压力非常大。从页面实现分析,模板引擎技术无法彻底实现前后分离3,加载页面的时候会造成重复的、大量的 http连接。因此,研究和设计出适合学校办学规模的学习平台底层架构,是实现整个学习平台的最关键所在。2023 年第 11 期96计算机应用信息技术与信息化2 系统设计2.1 系统业务架构按照业务驱动的模式,系统设计首先是要满足平台的业务和功能,设计出贯穿招生、报名、学习、考试、毕业、学位等全流程的业务架构,按照“数据+平台+应用”的思路来构建江苏开放大学学历教学平
7、台。根据不同的业务场景,如复杂前端交互、高并发访问、大数据存储等,采用不同的技术路线去逐步解决系统设计的难题,最终实现整个系统的最合理技术架构,如图 2。图 2 学习平台业务架构江苏开放大学学习平台是学历教育平台,承载的不仅仅是在线学习的功能,而是围绕人才培养方案,实现一个完整的网上虚拟校园。通过对教学运行全流程进行分析,根据不同的用户角色将平台的业务和功能进行切分,从顶层设计上分为决策层、业务运行层、管理控制层和平台服务层。通过业务的分层设计,形成了基于管理层、老师和学生等不同身份和角色的业务架构。2.2 选课及缴费的设计根据人才培养方案的要求,所有课程分为通识必修课、通识选修课、专业必修课
8、、专业选修课等四个类别,每个类别都有最低毕业要求,学员在满足最低毕业总学分的同时,还需满足每个类别的学分要求。每个专业总学分约 72 学分,每门课程约24学分,每位学员共计需修完26门左右课程。学员选课时,平台在动态的计算每位学员已获学分的同时,还需根据课程类别计算课程地图,并根据预设的考点为已选课程进行笔试考场的场次安排。16 万名学员在每学期第一周进行集中选课,选课期属于系统并发压力最大、逻辑计算最复杂、接口访问最频繁的时间段,必须采取有效的技术手段缓解系统压力。通过缓存策略,在选课期将 900 门全部可选课程放入Redis缓存,用户在服务器的内存中进行选课操作,可以减少约 200 万次数
9、据库连接,订单缴费时才会产生 16 万次最小数据库写入,如图 3。图 3 学习平台选课查询学员在学习平台进行选课,缴费时切换到学校统一缴费平台,在大并发场景下,学习平台需与缴费平台进行深度对接,才能完成选课及缴费全流程。对两边系统进行分析,通过定制开发 API 的方式,来实现具体缴费业务,通过RocketMQ4消息队列轮询的方式,来确认缴费是否成功。在统一缴费平台缴费成功后,调用学习平台缴费返回接口,学习平台前端页面通过 React 的 useUpdateEff ect 接口状态数据管理技术,在不刷新页面的情况下提示用户缴费成功,并自动进入“我的课程”页面。2.3 统一通信的设计16 万名开放
10、学员分布在全省 73 个教学点,这种教学点空间分散布局的方式给学校的管理、师生间的沟通带来了诸多不便和困难。要解决数量庞大的学员之间的通信问题,仅仅通过平台中的站内私信、BBS 等功能是不现实的。需要借助多种通信方式,实现学员在选课、缴费、课程学习、考试预约、毕业申请等全流程业务中的通信问题。通过平台与学校统一通信平台和微信通的对接,实现了短信、微信和站内私信三种方式的信息通道。考虑开放学员数量庞大,短信通信产生的费用在办学经费上是一笔不小的开支,因此在重要信息的推送上,如报名、选课、缴费、毕业等信息采用短信推送的方式。在课程公告、资源更新、作业批阅、师生互动等信息的推送上,采用微信推送的方式
11、,学员通过关注“掌上江开”微信公众号5,即可接受微信推送。通过多通道的信息互通,实现了平台与学员间、课程导师与学员间、5.4 万个虚拟班级间的信息互通,有效地提升了学校教学支持服务的质量。2.4 在线考试的设计平台上线初期,考试方式为笔试,出卷和阅卷的量都非常大,随着平台的迭代开发和考试模式的改革,需要将部分线下笔试改造为在线考试,学员通过设置在各个市县开放大学机房内的考点进行考试。在线考试的实现先从题库开始,根据人才培养方案中考核的要求,对纸质试卷的试题进行电 2023 年第 11 期97计算机应用信息技术与信息化子化后生成题库,再根据组卷策略从题库中抽取试题生成卷库,考试前平台根据编排好的
12、考场和场次从卷库中抽取试卷并下发到各个考场,各个考场通过保密号领取试卷。学员可以通过两种方式参加在线考试。第一种方式是通过选课时生成的考场编排,在线打印准考证后正常参加期末考试。第二种是通过在线预约的方式,在期末考试前一周,通过平台的在线预约功能,提前预约并完成考试,对于成人学习而言,预约考试的时间灵活度更高。预约考试的实现既是考试模式的改革,也是考试模式的创新。在线考试的并发量是平台所有功能中最高的,单场考试的最大人数即并发量,并发计算方法和其他功能完全不一样。用户在同一时间段进行集中和频繁的操作,数据量虽不大,但 http 访问密度极大,通过对服务器进行压力测试,单场考试能容纳的最大考试人
13、数为 3000 人,教务管理部门参照这个规则进行考试时间段的制定和考场编排。3 系统实现3.1 系统后端实现分析业务架构的应用规模和复杂度,系统编码采用Spring Boot 作为后端开发框架,相较于 Spring MVC 有着巨大的优势,Spring Boot 是异步非阻塞式的 Web 框架,相比阻塞式 Web 框架具备更高的并发6处理能力。如学生在线时长的统计,每隔 20 秒前端页面就会自动访问后端计时接口,每日 4 万名学生在线学员在线的规模下,理论上 20 秒内系统最大并发数为 4 万,因此采用非阻塞式7Web 框架是实现系统的前提条件,后端开发框架的选择对平台的实现起着至关重要的作用
14、,直接决定了系统的并发上限。后端设计采用软件模块化设计思路,将复杂的业务模型细分为若干更小的层次,具体分为控制业务逻辑的 Controller层、负责逻辑应用设计的 Service 层、负责获取数据组装成对象的数据访问 DAO 层、定义与数据库对象对应属性的Entity 层。Spring Boot 通过 Controller 层调用 Service 层的方法来实现平台的业务逻辑,在功能实现上,主要通过集成的Swagger 接口文档工具生成相应的 API 接口来实现具体的功能。在实际开发中,Spring Boot 是作为纯后端来使用的,并不直接参与前端逻辑应用,复杂的应用是通过前端组合调用多个
15、API8来实现。这样设计的好处是可以完全实现程序的前后分离,前端既可以使用模板引擎技术,也可以使用第三方前端框架,同时方便移动端的设计和改造。为实现大规模高并发访问,系统后端采用微服务架构9,在架构设计上已和传统的系统有着本质的区别。通过模块化开发方式,将各个业务功能提取出来进行单独开发,如登录、鉴权、权限分配、选课、缴费、作业、毕业申请等。在建立好校级私有的 Maven 仓库后,将已开发好的各个模块以jar 的形式放入 Maven 仓库。在开发过程中,系统需要用到相应的功能时,可以在 pom.xml 中以 jar 的形式直接引用,避免重复开发同样的功能。在运行过程中,Spring Boot
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 大规模 并发 开放 大学 学习 平台 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。