现代化网络日益发展的今天,计算机的飞速普及,正逐渐影响到传统的纸质考试方式,先进的在线考试正在逐渐的发展,在发展的过程中各类系统正在摸索中进行,期间也遇到了很多问题,第一、受到服务器并发连接限制以及数据库查询资源限制,限制了同时在线的考试人数;第二、单台服务器带宽的限制;第三、运维和系统环境管理的不到位。这些造成了同时在线考试人数低下,考试中系统出现问题,硬件投入得不到有效的利用,同时在线并发时系统宕机,多人同时登录时系统出现页面无法访问等问题。
随着技术的不断发展进步,技术也在不断的成熟,这些问题在实际中其实有很好的解决方法。
该篇文章简要介绍这类系统中发现的问题和大致的解决方案,具体实施不在该篇文章中进行介绍,如需详细的方案请联系我。
下面分条进行解决其中的各种问题:
第一、服务器并发连接限制
受硬件和软件的限制,单台服务器都有最大并发数限制,在硬件可以接受的前提下,实际应用中尽量通过优化手段提高系统的并发数量,前端应用服务器可以通过负载均衡技术进行均衡负载,这样前端服务器资源不够只要增加负载均衡中的服务器即可,原有服务器硬件并不需要改变。根据实践证明,服务器配置并不是越高越好,前端服务器做到够用即可,日后拓展只需要增加服务器即可。
单台服务器带宽限制也可以在该方案中得到很好的解决,因服务器采用均衡负载,这样前端服务器分布式进行传输数据,带宽也由单一变为分布。
均衡负载会造成session数据的不统一,实际应用中应采用数据库或者独立高速缓存服务集群的形式进行处理。
第二、数据库资源限制
在现在大型系统中,数据库已经成为整个系统的瓶颈所在,频繁的查询相当耗费数据库服务器的资源,如果遇到写入数据表被锁定,这样其他的读写就会进入队列,当队列达到一定程度时,就会遇到数据堵塞问题。
想很好的解决该问题,需要从多方面进行解决:
1.服务器进行主从服务器设计
采用一主多从的数据库架构或者多主多从的数据库架构,正常情况下采用一主都从的结构足够使用。当服务器资源不足时,适当增加从服务器的数量即可。单台服务器配置不建议过高。
主从服务器可以做到读写分离,读即查询,属于耗费资源的操作,将大量的查询操作分配到从服务器中,写即增删改操作,属于锁定型操作,写操作被分配到主服务器中,从服务器实时去对比主服务器的所做的修改等操作。做到所有从服务器对主服务器的数据统一,当主服务器出现问题时,可迅速使用任一台从服务器接替主服务器的工作。
2.高速缓存技术
当写操作过多时,也会造成主服务器的延时增大,主从服务器之间的频繁同步效率逐渐下降等问题的出现。
这时候就应该采用独立的高速缓存服务器,将需要频繁读写并不属于最终结果的数据存放于高速缓存服务器中,高速缓存服务器即使用内存进行中间结果的缓存,高速缓存服务器可以组成负载进行分布式进行缓存。
因高速缓存的内容不属于最终结果和最终需要的产物,例如考生考试中的作答、考生的考试时间、考生的在线状态等一些不重要的数据,这些数据最后可在考生交卷和采用分布式队列服务,定期的写入主服务器中,做到最终考试作答的保留。
将考生基本信息缓存也是一个很不错的措施,因考试系统在考试过程中会频繁使用(每个页面中),并且该信息考试过程中基本不会改变。
最后考生交卷,将高速缓存的数据写入到数据库(该数据库可独立于考试中使用的服务器)中,该数据作为日后分析和出现问题使用,并且清空高速缓存中的缓存数据。因考试交卷属于交叉交卷,这样可以达到最大的效率。
第三、运维和系统环境管理的不到位
在实际应用中,硬件和软件环境都具备,但是因为管理和运维水平不到位,造成一直没有大批量进行推行使用,其实这个可以聘请有实力的组织、个人进行协助管理。保证系统的稳定性和安全性。
通过以上几种方案的综合使用,可以发挥系统最大的作用,实际应用环境包括集成在线报考-在线考试系统,大型在线报考系统,大型在线考试系统,大型在线计算机应用能力考试系统(含在线打字部分),在线教务管理系统。
这些技术也可适当组合应用于其他场景中,希望该篇文章可以引出更多更好的方案来。
引用请注明引用地址!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析