高并发web系统设计与实现

来源 :大众科学·中旬 | 被引量 : 0次 | 上传用户:fdghghjhghjjh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着信息化时代的不断发展,但是随着规模的不断壮大,面临的问题也随之出现。其中最主要的问题就是随着用户访问量的增加,面对大量高并发、高负载的访问,系统难免出现无法支撑的局面,导致系统性能下降,系统响应时间过长,甚至导致系统崩溃的后果,在本文主要围绕高并发的问题,对服务器集群中的session存储问题进行了分析与设计,并且对系统后端数据库进行了改进。
  关键词:高并发;session存储;读写分离;服务器集群
  1.session存储问题分析
  当应用服务器从单机变为集群时,可以显著提高系统整体的并发能力,但是会面临session一致性的问题。当用户访问系统前端页面时,所有的请求都会经过负载调度器,负载调度器通过负载均衡算法,将用户请求分配给一个后端服务器节点,然后在该服务器中创建session,将处理后的数据返回给用户。当用户再次访问系统时,负载均衡器很可能将请求分配给另外一台服务器,还需重新创建session,所以在服务器集群化部署过程中,最重要的就是session同步问题。把各个应用服务器做成无状态的应用节点。用户访问系统时,集群内的应用服务器对等,任意一台服务节点处理请求的结果都是一样的。
  2.session数据存储设计
  Session复制方案是由Web容器提供的会话复制功能,在集群中各个服务节点存储所有用户的会话信息,使得应用服务器中session数据保持同步。该方案的局限性是,每当会话数据发生变化时,都要进行数据同步,当服务器数量庞大的情况下,同步数据必然导致网络带宽开销变大,并且每台服务器都要保存所有的会话数据,当访问量变大时,session数据消耗内存非常严重。
  根据上述分析结果,将session数据存储方案做出了改进,将session数据统一存储到数据库中,应用服务器从后端数据库中获取session。这样无论哪条session数据发生变化,最终的数据都集中存储到数据库中,各个服务器节点不必消耗资源来同步会话数据。
  该方案相比于session复制方案,不需要消耗服务器内存来保存session数据。但是对数据库进行读写session数据引入了网络操作,相对于本机同步session可能存在時延,但是这种数据传递过程发生服务器集群内部,且网络环境处于局域网中,对通信的影响甚微。面对大量服务器集群session较多的情况下,该方案优势比较明显。
  负载均衡器按照负载均衡算法将请求转发给集群内部的应用服务器,此时应用服务器在后端Redis缓存服务器中创建一个session,当同一个session中有多次请求时,即使将请求分配给其他服务器,该服务器也可以从Redis缓存中读取session,所以集群内任何一台处理请求的结果都是相同的。
  Session统一存储采用Redis作为缓存服务器,为了保证应用的可靠性采用主从备份的方式。Master(主)库进行写操作,Slave(从)库进行读操作。并且Master库与Slave库数据保持同步。当主库出现问题时,从库的心跳监测机制会将从库升级为主库。
  3.数据库集群设计
  在高并发的情况下,系统响应时间过长甚至系统瘫痪大多数原因都是由于数据库瓶颈造成的[1]。解决了应用服务器请求分配的问题之后,应用服务器需要从数据库请求数据,此时数据库的瓶颈会暴露出来。根据木桶原理,那么数据库成为系统的短板,所以说解决高并发问题,需要从整体进行优化。下面讨论对数据库集群进行设计,来提高后端数据库的承载能力。
  4.数据库读写分离
  读写分离方案主要应用于读写比很大的系统[2],从业务角度分析对数据库的操作读大于写,所以说后端数据库采用读写分离进行优化是提高数据库承载能力的有效办法[3]。
  首先在数据层面实现读写分离,采用一个Master数据库,多个Slave数据库设计方案,根据自身业务的需求,将Master库与Slave库中的数据保持同步。应用程序对数据进行编译,将数据传递到数据库层,Master库负责对数据完成insert/update/delete操作,Slave主要读取非实时性的数据,完成数据的select操作。在数据库读写操作中,读的频率远远大于写,并且读取操作所占用的资源和耗时也更多,当Master库出现问题之后,Slave库替代Master库的角色,来完成写操作,系统的读写分离的设计结构如图1所示。
  5.优化后的系统并发测试
  测试环境的搭建
  测试系统系统由Nginx负载均衡服务器,测试终端PC机,五台应用服务器组成。部署相同的数据库系统,根据配置文件将数据库分为读写不同的角色。为了方便测试,将该测试系统搭建在同一局域网里,通过两层交换机连接起来,终端测试机通过Jmeter生成并发连接数,访问负载均衡服务器,负载均衡器将请求分发给后端应用服务器。
  在测试机中运行Jmeter中发送模拟用户请求,并且在两次测试中设定相同的并发用户数量和测试脚本。向负载均衡器发送的并发连接数为100、300、500、1000、1500、2000、2500、3000。为了防止单次测量出现的误差,在相同并发量的基础上分为10次测量,计算出平均值。如表一所示
  在本文主要针对高并发场景常用的技术进行了架构设计,并提出了设计方案,包括服务器集群所用到的session同步技术和数据库架构方案,最后使用Apache-Jmeter压测软件对系统进行并发测试,在不同的并发连接数量下请求系统,通过性能测试与数据对比整合分析表明,当并发连接数达到一定程度时,本文优化后的系统架构服务器集群性能有所提升,可以应用于高并发场景下。
  参考文献
  [1]龚卫华.数据库集群系统的关键技术研究[Dl.武汉:华中科技大学,2006, 53-61.
  [2]沙光华.读写分离技术在运营支撑系统中的应用[J].计算机工程与应用,2015.12:107-110.
  [3] 徐清德.Oracle读写分离系统在采油厂数据中心中的应[J].信息系统工程,2015.11.21-22.
  作者简介:张淇 1994-08-12男,汉,河北唐山,硕士研究生,研究方向:计算机网络与信息安全技术,063000
其他文献
摘 要:公路交通運输是我国消耗较多资源、造成较大污染的行业之一,而公路交通运输行业的节能减排是我国各级政府及人民群众应当关注的事情。只有积极促进公路交通运输的安全、节约、清洁、绿色发展,才能真正实现该行业的可持续发展。本文通过分析公路交通运输节能减排过程现状,着重分析该行业实现节能减排的具体措施,以供参考。  关键词:公路交通运输领域;节能减排;具体对策  一、公路交通运输领域节能减排现状  近些
期刊
摘 要:机电耦合动力系统负责将混合动力汽车的多个机械动力组合在一起,实现多动力源间合理的功率分配并把动力传给驱动桥,实现混合动力汽车的各种工作模式,在混合动力汽车开发中处于重要地位,合理的设计机电动力耦合系统,对于提高混合动力汽车的动力性、燃油经济性、降低排放具有非常重要的意义。  机电动力耦合系统最关键的技术是它的布置方案,不同结构的机电耦合系统将导致混合动力客车的使适用条件和使用要求各不相同,
期刊
摘 要:随着新课改的推行,素质教育已经成了教育界主要研究的话题。在小学教育中,素质教育改变了传统教学观念,要求在对小学生进行教学过程中,要以学生为教学主体,根据学生的特点进行教学,重视学生的个性发展,从而促进学生能够全面发展。而在小学教学中,语文教学又占有重要地位,所以小学语文教学中语文素质的培养尤为重要。虽然近几年在培养小学生语文素质这方面取得了一些成绩,但是还是存在一些问题,本文根据小学语文教
期刊
摘 要:BIM作为一种全新的管理理念,以可视化、关联性、模拟性、可出图性、信息完备性等优点,为建筑工程的信息化管理创造了条件,但是由于国内BIM算量综合评价指标的不一致性,使得系统优势发挥受到极大限制。本文从BIM算量系统评价指标体系构建谈起,试论BIM技术深入推广和落地的可行性策略。  关键词:建筑工程;BIM算量系统;综合评价  BIM算量系统的出现,针对性弥补了传统算量易出现的漏算、错算、重
期刊
摘 要:在考虑一个系统的非功能性需求之前通常我们需要了解系统的属性,对数据库系统来说,通常分为联机事务处理(OLTP)和联机分析处理(OLAP)两大类。不同类型系统对容量、性能、可用性、安全有不同的要求。  关键词:数据库;DB2;架构设计;设计规范  一、数据库应用系统的非功能需求。  OLTP系统:典型OLTP系统面向大量并发用户,支持日常业务处理,每个事务通常只涉及少量记录;系统要求响应时间
期刊
摘 要:超高层建筑建筑结构复杂,功能也比较多样化。近年来,超高层建筑工程临时用电技术已经引起人们的重视,相比与普通建筑临时用电技术,超高层建筑工程用电线路更加复杂,而且涉及的用电设备也比较多,如果临时用电技术不符合高层建筑的实际用电要求,不仅不能满足居民的用电需求,而且还增加了居民的用电风险。本文就超高层建筑工程临时用电技术展开论述,分析超高层建筑工程临时用电技术的特点跟用电原则,最后提出提高临时
期刊
摘 要:农田水利工程的存在主要是为解决农村农田灌溉及水资源缺乏、季节性缺水以及人畜饮水困难等问题,而乡镇小型农田水利工程管理的好坏,不仅关系到水利工程建设的发展,也对未来新农村的建设和发展产生巨大的影响。因此,乡镇小型农田水利工程对保障农民粮食作物产量、基本生产生活有着非比寻常的意义。本文将对当前乡镇小型农田水利工程管理中存在的问题进行详细分析和科学研究,并给出相应的解决方法和对策,推动其管理水平
期刊
摘 要:房地产市场一直是我国最为热门的市场行业之一,在房地产市场发展过程中的房屋建筑工程也是房地产市场行业的核心所在。因此在本文中,我将结合自身的工程管理经验以及对房屋建筑工程项目的研究详细论述当下阶段我国房屋建筑工程项目管理中存在的问题以及相关对策。  一、房屋建筑中工程管理存在的问题  纵观当下的房屋建筑工程管理行业,我认为主要存在着以下两个方面的问题:  (一)施工管理部门存在着沟通盲区  
期刊
摘 要:转向架组装工序作为转向架生产过程中最为重要的一步,施工过程需要严格管控。智能制造以智能生产、智能管理为核心,利用先进的生产辅助管理程序,从采集制造进度、控制现场操作、提高质量检验、管控设备状态等多方面优化组装工序,实现转向架产品的智能制造。  关键词:转向架组装;智能制造;辅助管理程序  1.研究背景  我国高速铁路正处于快速发展阶段,在线运营的动车组越来越多,对转向架组装工序智能制造提出
期刊
摘 要:实验在化学课堂教学中的重要性不言而喻,学生在实验过程中可以自主探究知识,让学生在亲手实验的过程中实现理论知识和实践操作的结合,有利于学生加深对化学知识的记忆和理解。在化学课堂教学中,作为化学教育工作者要摆正自己的位置,确立学生在课堂学习中的主导权,让学生在亲自动手实验的过程中掌握知识而不是靠单纯的记忆,同时就学生在实验过程中出现的问题,教师要及时进行指导,这样才能有效提升化学课堂中实验教学
期刊