APP下载

浅谈高并发在线学习系统中的关键技术

2020-12-24郎裕

商情 2020年43期
关键词:技术

郎裕

【摘要】21世纪以来,随着信息技术飞速发展,教育信息化、高等教育大众化的普及,基于互联网的在线教育蓬勃发展。为了提高教学质量,各高校不约而同地推出了质量管理和監督的相关措施。在线学习系统中同时在线学习的人数至少在数千人以上,对系统额并发能力提出了严峻的考验和挑战,本文从以下几个方面介绍了高并发在线学习系统中使用的技术。

【关键词】高并发  在线学习系统  技术

1、什么是在线学习系统

在线学习系统是通过计算机互联网,或是通过手机无线网络,在一个网络虚拟课堂进行网络学习的教育模式。通过远程视频授课、网上自主学习、互动交流、文档共享等方式,让教师与学生再网络山形成一种教与学互动和自助学习氛围。目前在线学习系统大致分为两种,以学习管理驱动的平台和以教学资源驱动的平台。翻转课堂、微课和慕课都是其具体的表现形式。

翻转课堂:老师创建课程视频发布到网络上,学生利用课外时间观看课前视频,在课堂上与老师面对面交流,最后共同协作完成课程学习与作业。

微课:教师制作5-10分钟左右的视频教程。因为微课具有小、短、精等诸多特点,学生可以选择性的学习。只要学生愿意学习,就能随时点击观看“微课”,可以保持终身学习状态。

慕课:大兴开放式网络课程,慕课进一步推动了支持终身学习的开放教育资源运动,目前已经出现了不同形式和风格的慕课,它们在学生规模、公开程度、是否完全再现和事发后完成课程或形成互联社区等方面各有千秋。

高并发是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间,吞吐量,每秒查询率QPS,并发用户数等。高并发在线学习系统一般是指系统用户在万人以上,同时在线人数达到千人以上的教学系统。

2、如何提升系统的并发能力

2.1 三层架构。系统的整体架构使用的是分层设计思想,通过模块化设计每一层架构,层间与模块间通过较少的结构通信保证低耦合性。这样的设计是提升系统并发性、可用性的基础。

2.2 集群负载均衡。单一的负载均衡器有单点故障的系统风险,为了保证系统的高可用性,采用双负载均衡器与心跳检测其构建主从负载均衡结构,负载均衡器的选择有多种,大体可以分为2大类:软件负载均衡和硬件负载均衡。软件负载均衡可以选择Nginx,硬件负载均衡可以选择Radware。

2.3 混合数据存储。混合数据存储利用不同的数据存储模式,将相对独立的数据集以合适的方式存储,在保证系统数据一致性的技术提高并发性与可用性。混合数据存储的核心还是关系型数据库,关系数据库高性能稳定性的特性是其它非关系型数据库和其它存储方式无法比拟的。对于高频操作的数据,除了在数据库中存储外,还应该在缓存中存储。持久化缓存采用日志的方式保证缓存的非易失性。换入换出缓存是纯内存的缓存,当容量达到阈值,利用算法换出一块老的缓存,加需要使用全文检索引擎来存储数据与索引。对于用户海量的历史数据、日志数据等数据应定期存入数据仓库存储,便于后续数据分析。混合数据存储,充分利用各个存储方式的有事,有效提升系统的并发性和可用性。

2.4 静态分离

对于不经常变化或者模板化的数据、界面可以抽象成静态资源,例如商品详情描述界面,商品图片。对于经常变化或者个性化的数据与界面可以抽象详细数据。客户端对静态资源的并发访问性能要远高于对从架构角度,可以将静态资源与动态资源分离,静态资源保存在专门的静态资源Web 服务器或者 CDN上以及客户端中,动态资源从业务逻辑服务器上请求获取,从而提高系统的访问性能与并发能力。

3、业务实现的策略

3.1分区缓存策略

从业务的角度考虑,数据应该切分到不同的分片。数据分片上层分别添加一层各自的缓存。缓存使用 redis 持久化内存数据库实现,确保缓存不会丢失。流媒体服务器对数据的读写,大部分是直接与缓存层交互,很大程度上提高了读写性能。大部分的读写操作多是基于这部分随着缓存内视频的读写,有些热视频状态变化成了冷视频,如果学生查看视频,就需要同时读取缓存和数据库,合并读取信息作为读取结果。

3.2事务降级策略

读取视频需要使用事务保证 All or Nothing,以及事务的隔离级别( 锁实现) 来确保并发事务中部分代码片段的Before or After 隔离性,读取操作是一个完整的事务,事务过程的设计方案有 2 种:

方案1:读取事务开始后,马上进入子事务,首先检测视频是否足够,然后完成一系列操作,更新后台数据,提交整个事务。考虑到并发的事务,在 redis 上需要序列化执行,那么,事务到提交很长一段时间内不能并发。所以方案1对高并发的支持比较差。

方案2:读取视频事务开始后,先完成一系列非事务的操作,到事务末尾,进入事务,检测视频是否存在,然后更新,提交事务。方案2将事务缩短了很多,提高了一定的并发能力。但是,考虑如下情况: 当视频播放完成,这时候仍有大量学生读取视频,开始事务,都执行完然后进入事务,陆续检测到内存不足,都要回滚事务。那么大批事务都要回滚到内存,有的比较长的一段处理过程。所以回滚问题,会给系统带来很多不必要的资源浪费。

4、总结

本文针对在线学习系统高并发性的需求进行研究,谈谈高并发系统中的关键技术。这些技术分为 2 类: 架构级高并发高可用策略和业务级高并发高可用策略。架构级策略包括: 三层架构、集群负载均衡、混合数据存储、静态分离等技术。以及业务层面的分区缓存策和事务降级策略。

参考文献:

[1]王小戏.高并发高可用零售 O2O 交易系统的架构设计与业务实现[J].计算机与现代化, 2016(04).

[2]巩晓悦.基于个性化推荐的在线学习系统研究与实现[D].北京邮电大学,2019.

[3]王承军.高并发大数据在线学习系统中的关键技术研究[D].中国地质大学,2015.

[4]蒋志辉.在线开放课程学习者满意度研究:发展、影响因素提升路向[J].现代远距离教育2017(03).

注:本文为黑龙江省教育科学“十三五”规划2020年度重点课题“高职院校在线教育系统实施技术和保障制度的研究 ”论文。

猜你喜欢

技术
探讨电力系统中配网自动化技术
移动应用系统开发
北京市中小企业优化升级