文档介绍:的高考填报志愿系统高并发负载解决方案摘要:本文以当前全国各省普通高考网上填报系统因并发量过高而极易造成网站的瘫痪的现象着手,设计了普通高校招生网上填报志愿系统的高并发负载解决方案。本系统在尽可能的采用传统的网站高并发负载优化策略的同时,还针对系统本身的特点从宏观架构及微观技术实现手段上都加以研究分析,制定针对网上填报志愿系统的高负载解决方案。宏观上本系统利用了面向服务的程序设计方式将系统分为网站程序层、数据缓存层、数据库层的三层进行设计,实现了系统中应用程序、数据操作、数据存储上的物理及逻辑分离,因此系统应对高并发负载具有了分布式解决能力,实现了系统的可扩展性。微观上,本系统利用了目前许多提高系统性能的新技术新方法,使网站程序运行具有了高效性。本系统的有以下几个特点及创新:(1)架设数据缓存库服务器,建立完善的内存数据缓存管理机制,利用面向服务的技术进行网站程序和数据缓存之间的通讯。(2)WEB程序与数据库隔离,增加系统的安全性。(3)软件程序负载均衡与硬件负载均衡结合应对大并发访问。(4)WEB服务器设置内存字典,使用哈希表进行数据映射,解决频繁数据查询。(5)网站程序层、数据缓存层、数据库层的分层结构设计,方便系统扩展。通过测试和实践证明,使用多种方法对WEB程序进行优化设计及把内存数据库作为向数据库中写入数据前的缓冲的思路,能很好的增加网上填报志愿系统一类的大数据量的网上应用程序的吞吐能力,从而完成高并发负载的网上填报志愿需求。关键词:高并发负载WCF内存数据库优化中图分类号:TP319文献标识码:A文章编号:1672-3791(2013)03(c)-0043-05随着近年来教育部对“阳光工程”的施行和“平行志愿投档”的推广,加强了我性和透明性。其中“填报志愿”是考生选择大学的方式,决定着考生一生的发展道路,因此确保志愿信息采集的公平性、及时性、准确性、安全性也成为了各级招生部门工作的重要环节。目前招生部门采用的高考志愿信息采集主要有两种方式:一是的传统的涂卡方式,招生部门发放给考生志愿信息采集卡,由考生根据学校和专业代码填图志愿后,统一利用光标阅读机(OMR)进行读卡;二是开发网上填报志愿系统(以下简称网报系统)利用网页进行志愿信息采集。网上填报志愿针对过去的录卡报志愿网报系统有以下几个方面的优势。(1)直观、高效。考生通过通过互联网登录网报系统。考生可以在下拉菜单中做出选择,填入学校和专业代码即可。部分操作熟练的考生十分钟之内就可以完成志愿填报。(2)简化流程。采用读卡填报志愿方式流程是让每位考生向老师索取志愿卡后填涂信息,再到招生办读出志愿信息,回来后考生改错,再由招办工作人员重新改正,然后考生确认信息,这些环节不能有半点差错。网上报志愿简化了这些流程,考生可以在任何接入互联网的电脑上填报志愿并在网上确认。(3)错误率减少。通过涂卡的方式报志愿时,考生先查找好报考的院校及专业代码,然后根据代码的数字在信息卡上相应的代表位置涂黑,由于填涂过程不能直观的反应出所填报的院校及专业,所以很容易因涂错位置而发生填报错误。通过网上报志愿考生所录入的院校及专业的代码可以及时的进行翻译和校验,大大减少了填报错误的发生。采用网上填报志愿是发展必然趋势,也是互联网高速发展及计算机普及的产物。随着部分省份对网上填报志愿的率先尝试并取得较好的社会反响,网上填报志愿已成为考生志愿信息采集的最好方法。同时,进行网上填报志愿的省份也都面临着一个严峻的问题:由于考生人数多,并且访问时间集中同时单个考生修改及查询频率又高,极高的瞬时并发操作请求致使系统和数据库超负荷运行,系统不能及时响应访问请求,旧的请求还未处理完,新的访问请求又到来,从而导致服务器处于假死状态。一旦进入假死状态,用户的操作就会得不到响应,页面长时间打不开会延误考生填报志愿,造成不良的社会影响,甚至致使考生不能完成填报志愿造成重大责任事故。如何有效的对系统进行高并发负载已成为网报系统的瓶颈和使用上的软肋,也制约了网上填报志愿在全国范围内的推广,目前各省教育考试部门都在针对这一问题进行积极的探索。平台上提出解决方案:根据木桶原理,要想提高系统的整体能力就需要找到系统的瓶颈加以解决。我们首先分析了整个系统的结构,由于网报系统需要响应大量的考生访问,并且每个考生的访问都要进行大量的数据查询存取操作,因此网站不同功能之间的处理能力和速度上的差别也就成为了系统存在的瓶颈。本着为处理压力较大的模块增加扩展,为处理速度较慢的模块设计缓冲这一理念,我们对系统中的应用程序、数据操作和数据存储这三大应用功能进行了分层设计,将系统分为网站程序层、缓存数据库层和数据库层。网站程序处理压力大,该层要进行可扩展性设计;数据库层存在速度较慢,该层要由数据缓存层进行缓冲设计,(如图1)所示。下面分