基于虚拟化的高并发Web考试查分系统的设计与实现
2022-07-05于伟
摘要:互联网信息技术突飞猛进,Web系统被越来越多的行业在生产生活中使用。教育考试管理机构在发布中考、高考成绩的时候,Web系统也被用于考生查询分数。由于查分人数众多,容易出现系统缓慢,甚至高峰时段短时间内无法访问的情况。为了解决该问题,文章提出了一种基于虚拟化和负载均衡的高并发Web考试查分系统的解决方案,该方案能有效地应对短期高并发的业务访问。
关键词:虚拟化;教育考试;高并发;查分;负载均衡
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)14-0099-03
当今世界信息技术突飞猛进,在现实生活中Web访问技术使用越来越频繁。人们越来越离不开Web系统,譬如12306铁路网上购票、大众点评网上订座、淘宝网上购物、教育考试网上查分等,Web系统已经融入人们日常生活中。随着Web系统应用场景的扩大以及互联网的普及,普通的Web系统由于响应时间过长,处理速度过慢,高峰期无法连接等特性越来越难以满足临时、短时间、突发的巨大访问量。高并发Web系统借助虚拟化技术构建应用服务集群、数据库集群,通过一定的负载均衡策略极大地提高了服务的可靠性和稳定性,很好地满足了现实生产生活的需要。
本文着重研究了高并发访问系统的技术特点,并结合教育考试管理机构成绩发布时遇到的高并发访问这一特定场景,基于虚拟化技术和负载均衡提出了一套行之有效的高并发Web系统架构,最后通过实现原型系统证明了这套架构在相关应用领域中的实际价值。
1 Web发展概述
最开始的Web系统由一台服务器构成,同时承担着响应服务请求和数据增、删、改、查的任务,这种架构所能承载的日访问量和短时间访问量都很小。随着访问请求日益增加,单一服务器搭建的Web系统无法满足要求,因此逐渐将前端响应服务请求的功能和后台数据增、删、改、查的功能区分开,由一台Web服务器和一台数据库服务器构成。Web服务器负责接收处理客户的访问请求,数据库服务器负责处理保存后台的客户数据,两类服务器互不影响,这种架构可以满足以万计级别的日访问量。如果Web访问服务继续增加,服务提供商可能会采用更高配置、更高性能的服务器来解决访问瓶颈,但这种架构存在着先天劣势,且不能满足短期突发的大量访问请求这类场景[1-3]。在广泛使用需求的推动下,高并发Web系统成为研究热点。
2 虚拟化技术概述
虚拟化技术将计算机的处理器、内存、硬盘、显卡等物理资源抽象为逻辑资源,并将逻辑资源组合成虚拟机。用户在访问虚拟机获取服务时就像访问现实计算机一样真实。在实际生产环境中,软硬件资源相对孤立,通过虚拟化技术整合新旧物理资源,将不同时期采购的不同型号、不同品牌的计算机作成虚拟机,构成一个大的服务器资源池,极大地减少了机房软硬件资源的采购成本,提高了软硬件资源的利用率。当一台虚拟机出现故障时,可以迁移到其他服务器上进行运行,见图1,确保服务无缝衔接,实现了查询访问服务的高可靠性[4-6]。
3 考试查分系统的特点
考试管理机构考试查分系统呈现一定的规律。在考试管理机构规定的一段时间内,考生可通过部署的查分系统访问查询各科考试成绩。在成绩查询期间,考生如对发布的成绩有疑义,允许其在线提出成绩复核申请。成绩复核期间,考试管理机构根据汇总的成绩复核申请,组织工作人员进行成绩复核。复核结束后,考生可再次在线进行复核成绩查询。从上述流程可以看出,在成绩刚刚开放查询时,瞬时访问会急剧增加,特别是利害性考试查分系统尤为明显。此外,由于考生成绩查询、修改操作需全程可回溯的特点,对数据库的任何增删改查都要有日志记录。
4 高并发Web考试查分系统的架构设计
笔者在单位虚拟化集群上搭建了一套高并发的Web查分系统。该系统框架由数据库访问层,缓存管理层,应用逻辑层,数据表示层4个部分组成[7-11],见图2。
数据库访问层,主要是和数据库进行交互,对数据进行统一的读写和存储,保证访问数据库数据结果的一致性。通过提供访问数据库统一的读、写接口,屏蔽不同类型数据库的差异,极大地方便了缓存服务器对数据库集群的读操作和应用服务器对数据库集群的写操作,降低了数据出错的概率。同时,根据高并发业务逻辑的分析整合,对数据采用了横向拆分和纵向拆分方法,提供了简洁明了的数据分散结构,降低了模型上层结构的开发复杂度。数据库集群读写分离,通过一定时钟内主从复制来保证向上层提供服务的响应时间和数据一致性。
缓存管理层,主要是对缓存服务器进行统一管理,譬如缓存失效时间、缓存命中概率、缓存内存大小、缓存保存规则、缓存服务器之间数据同步时钟设定等方面。缓存管理层借助虚拟化技術,构建缓存虚拟服务器集群,通过一定的缓存策略统一管理缓存在虚拟服务器集群上的数据。缓存向上对应用逻辑层提供统一的访问接口,向下对数据库访问层进行查询请求,并根据缓存策略决定是否将请求结果写入缓存。
应用逻辑层,主要是系统功能实现的逻辑处理部分,是高并发Web考试查分系统的核心业务层。应用逻辑层对来自缓存管理层的数据根据业务逻辑进行处理,实现数据的修改、获取、删除等功能,并将处理结果以用户指定的格式反馈给数据表示层,由数据表示层进行展示结果。应用逻辑层还与数据库访问层进行交互,在记录考生查询的log或者考生申请成绩复核的情况时,应用逻辑层调用数据库访问层接口进行数据记录。
应用逻辑层借助虚拟化技术,通过提供构建应用虚拟服务器集群,提高用户访问系统的响应效率。从多个物理服务器上构建应用虚拟机资源池,集中提供服务,对于数据表示层来说,所有虚拟机都是透明的,只感知到有一台应用服务器在提供服务。理论上,数据表示层可以任由其中一台虚拟机提供服务,但在实际生产环境中,受限于应用虚拟服务器的资源使用饱和情况,有可能会出现虚拟服务器宕机的故障,破坏服务的可靠性。结合负载均衡技术的使用[12],可以使数据表示层能选中资源相对丰富的应用虚拟服务器提供可靠服务。
数据表示层又称为UI层,位于四层架构的最上层,由用户直接访问。高并发Web考试查分系统采用B/S结构,由Web浏览页面展示最终结果。数据表示层的主要功能是实现数据的输入和展现。在此过程中无须进行逻辑业务处理,将数据输入应用逻辑层,并由应用逻辑层将底层获取处理的数据反馈给数据表示层,保证用户的体验。
5 高并发Web考试查分系统的实现
本文提出的高并发解决方案可以解决教育考试管理机构中考、高考成绩发布时高并发访问的问题,同时为普通Web系统所参考。数据库访问层对数据库的读和写都在同一个数据库服务器中,无论从安全性还是高并发等方面都无法满足实际需求,因此通过主从复制的方式来同步数据,再通过读写分离来提升数据库集群的并发负载能力。读写分离的主要内容是把数据库的读和写分布在不同的数据库上。数据库集群由一台主服务器和若干台从服务器构成,主服务器主要负责写操作,从服务器主要进行读操作。主服务器和从服务器之间设定同步程序,这样主服务器的数据会在一个很短的时间之内被同步到各个从服务器,见图3。
表格是数据库的核心部分,存储考生数据涉及三个表。第1个表为考生表,用于查询成绩用,存储报名号、考生号、姓名、各科目成绩;第2个表为复核表,用于查询成绩提出复核申请,存储报名号、姓名、需复核的科目;第3个表为考生详细表,用于复核时调出考生情况,存储报名号、考生号、毕业学校、身份证号、姓名、各科目成绩、各科目抬头图片。如果把考生所有的字段都保存在一张表里面,表格将会变得非常大,并且进行读写操作容易形成等待,效率低下。考虑到这些情况,使用纵向拆分的方法,把查询最为频繁的字段独立出来做成一个表格,仅将和呈现成绩相关的字段存储在此表中,去除更加详细的关于考生的字段信息,数据比较稳定,提高了查询和读写效率。此外,由于考生人数众多,采用横向拆分的方法,按照考生报名号的不同把相关字段放到不同的表格里面来减少同一个表格里面的数据量,从而达到加快查询速度和写入速度的目的,同时系统的可扩展性和可维护性也得到极大的提高。
缓存管理层使用负载均衡技术,使缓存服务器和数据库服务器相互协作、共同负载、均衡压力。对应用逻辑层而言,整个缓存管理层可以视为一台具有超高性能的独立服务器。缓存管理层负责应用逻辑层和数据库访问层的上传下达,根据缓存命中率和数据库负载情况,通过有效的均衡策略调整访问的数据库。
利用VMware虚拟化技术,可以弹性增减虚拟服务器的数量。在中考、高考查分期间,我们一般会把应用服务器增加到40台以上,等查询高峰过后,再将虚拟化资源收回,一方面减少了硬件成本,另一方面通过虚拟机复制避免了新增物理设备环境的搭建,减少了业务部署时间。
笔者在单位搭建了一套基于虚拟化的高并发考试查分系统,很好地响应了用户查分请求,取得了良好的效果,图4是中考查分时的并发访问趋势。
6 结束语
针对教育考试管理机构成绩发布时遇到的高并发访问问题,本文结合虚拟化和负载均衡技术,提出了一套切实可行的高并发Web系统架构,能够很好地应对本领域短期瞬时巨大访问量,提高了专业化考试机构的服务能力和水平,提升了考生的“获得感”。
参考文献:
[1] 李思莉,杨井荣,苟强.轻量级Web服务器的高并发技术研究与实现[J].计算机技术与发展,2020,30(10):75-78,85.
[2] 黄芝龙,徐莉莎,瞿少成.高并发Web电商系统的设计与优化[J].计算机与数字工程,2019,47(7):1719-1724,1775.
[3] GUL Khan Safi Qamas,王鹏,罗森林,等.一种高并发网络Web应用技术研究[J].信息网络安全,2017(12):29-35.
[4] 李丽君,唐智华.服务器虚拟化技术架构研究与应用[J].无线互联科技,2021,18(19):75-76.
[5] 李鹏.服务器虚拟化技术分析[J].电子世界,2019(22):74-75.
[6] 刘振东.浅谈基于Vmware的PC服务器虚拟化技术[J].科技风,2020(9):2.
[7] 李科伟.互联网中高并发技术架构实践[J].数字通信世界,2019(3):65-66.
[8] 陆兆攀,刘萍萍,卢颖.高并发搜索系统下内存池的设计和实现[J].西安工业大学学报,2016,36(3):187-193,205.
[9] 陈继磊.高并发下购物平台系统的设计与实现[D].济南:山东大学,2021.
[10] 江洪波.浅谈三层架构在信息系统开发中的应用[J].信息通信,2016,29(12):205-206.
[11] 张宇光.一种融合不同场景的高并发处理分层架构体系[J].通信技术,2020,53(1):93-100.
[12] 何磊.大数据平台负载均衡策略优化设计研究[J].信息技术,2021,45(7):139-143,149.
收稿日期:2022-01-16
作者簡介:于伟(1985—),男,江苏南通人,硕士,工程师,主要研究方向为教育信息化,考务管理。