《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 会话保持机制在集群系统中的应用研究

会话保持机制在集群系统中的应用研究

2016-02-24
作者: 张 蕾,侯瑞春,丁香乾
来源:2015年微型机与应用第9期

  摘  要: 用户会话信息一致性是影响集群负载均衡的一个重要因素。在研究当前负载均衡集群系统中会话保持机制的基础上,针对会话复制方法中随着请求增加导致网络阻塞的问题,提出一种添加了动态会话集中存储设备的会话复制机制。经模拟验证,该方法在较大规模集群环境下稳定响应多用户请求,平均响应时间仍处于相对稳定状态,满足大型企业级应用的会话处理需要。

  关键词: 集群;负载均衡;会话保持机制;会话复制

1 研究综述

  1.1 负载均衡技术

  随着计算机技术的发展,服务器性能成为影响大型应用系统的关键因素。Web服务器集群是通过高速局域网互连的多台Web服务器组成的,用户的HTTP请求被均衡地、透明地分配到集群中具体的服务器上,由其完成请求响应过程,并将响应结果返回给用户[1]。在性能、可靠性、灵活性方面,服务器集群比直接升级单台服务器有相对较高的效益。

  集群服务器的一个重要技术是集群内部用户请求的均衡分配——负载均衡。负载均衡技术能够根据各个服务器处理能力,合理地给各个服务器分配相应的请求任务,均衡分配任务的过程对用户来说是完全透明的[2]。

  1.2 负载均衡下的会话保持机制

  目前,HTTP协议[3]是Web应用中使用最广泛的应用层协议,采用分布式协作的方式和请求/响应模式的无状态协议。Web应用不保存与任何客户机通信的状态,只负责对到来的当前请求进行处理,因此需要一定的机制保持会话。对于负载均衡集群,应该保证无论请求被分配到哪个节点,用户请求对应的会话信息应该相同,实现节点之间的信息一致。

  会话保持机制主要实现方式分为Cookie机制和会话机制。Cookie机制将用户信息存放在客户浏览器中,随着用户发送的请求一起传递给服务器。因受到请求大小的限制和安全问题,它不适合存放敏感性的用户信息。因此,在会话保持机制中,Session机制很常用,它通过将整个用户会话过程中保持其状态的信息存储在服务器端来实现。

  目前LB集群系统中,常用的会话保持机制[4]有如下几种:

  (1)以负载均衡服务器入手,管理某个用户的请求和这些请求被分配到的集群机的对应关系,通过查询关系表,将请求分配到之前被分配到的集群机上进行服务。

  (2)负载均衡系统中,在多台服务器间根据处理需要传递复制会话信息,实现会话复制策略。用户请求发送之后,系统会自动查询是否已经产生对应的会话信息,然后进行会话处理。

  (3)从应用程序的会话管理入手,不将会话数据保存在集群机本地,而是所有集群机使用同一个会话数据缓存区,集群机通过查询会话缓存区获取该用户的Session id对应的数据。

  1.3 会话保持中的会话复制机制

  在LB集群系统中,也常常采用会话复制机制维护集群中的用户信息。会话复制机制的主要实现方式是:通过序列化,将存储在内存的会话信息转换成可以传输的形式,然后通过广播将消息传递给集群内部其他节点,节点接收报文并进行相应处理,从而使集群系统中每个节点都存储着同样的会话库。

  这种机制的优点是负载均衡设备对任务分配的灵活性高,系统的稳定性强,具有良好的可靠性和高性能,而且不会因为出现单个节点故障而丢失会话信息。缺点主要是应用规模小。增加节点会造成传递会话复制信息的工作量加重,造成节点性能下降,引发广播风暴。

2 改进的会话复制机制

  会话复制机制的优点适用于负载均衡集群。但是,对于集群规模较大的企业级应用系统,会话复制机制往往不合适。本次研究的主要目的是改进会话复制机制,使该机制适用于中大型企业。

  复制会话信息消耗每个节点的内存和网络带宽,是限制群集的规模的主要原因。进而,为了控制广播中传递的会话信息量,提出将会话信息分解,稳定的会话信息部分选择会话复制机制,数据量大且变化大的部分采取集中存储机制的会话机制,尽量减少在会话复制过程中复制和广播的信息量,使会话复制机制更适用于大型应用系统。

  2.1 改进方法的硬件部署方案

001.jpg


  改进后的会话复制机制采用会话复制为核心,集中存储设备为辅助。具体的服务器端的硬件部署模型如图1所示。服务器端集群多由若干个中小型规模集群组成。负载均衡平台的主要功能是转发用户请求,对任务进行分配。负载均衡器接受用户发送的请求,针对当前系统中的服务器节点的状态,均衡分配用户的请求。负载均衡器对集群系统的负载均衡起到总体调控的作用。

  集群中包含了服务器集群、数据库集群以及系统备份和企业级业务。其中,企业级业务包括FTP服务、邮件服务和企业内部管理平台。备份服务器采用双机备份的原则,当负载均衡设备出现故障时,便于系统的恢复。

  为了解决会话复制过程中大量数据复制的问题,在集群结构的内部添加了会话集中存储设备。该设备用于存储稳定性较差的会话信息,对该部分数据进行统一的管理,采取点对点的传递方式,仅限于处理节点与会话存储设备之间的不稳定数据传输。

  对于同一用户的会话数据,根据不同的稳定性,将用户的会话数据划分为静态数据部分和动态数据部分。静态会话数据变化不大,数据量相对较小,具有一定的稳定性,如用户名、系统参数等,采用会话复制的形式。动态会话信息包含一些随着时间变化而改变的数据,这些数据本身具有复杂性,如购物车、表单、实时数据等。将这部分数据的处理放在处理节点和集中存储设备上,有效地控制这部分数据传播的规模,而且点对点的传输处理也减少了对集群内部带宽的占用。

  2.2 机制的实现

  改进后的会话复制机制,具体实现流程如图2所示。

002.jpg

  (1)假设用户A访问系统时,服务器端接收用户请求,由负载均衡平台进行任务分配处理。负载均衡器动态或静态地监控集群中各个节点的负载状态,将任务分配到负载相对较低的节点上。负载均衡平台可通过软件或者硬件实现,对集群负载起到总体调控的作用。假设负载均衡器根据当前集群状态将任务分配到节点X。

  (2)接收到请求后,节点X会进行相应的处理。首先,服务器X从用户请求中查询请求数据中的会话ID。

  ①如果请求中没有会话ID,或节点X没有从本机会话库中查询到该会话ID,集群系统中没有用户A的会话信息,则节点X为用户A创建对应的会话信息。在会话创建完成后,分离出会话中的动态数据和静态数据。静态会话直接通过广播的形式发送到集群中的每台服务器。动态数据在完成用户请求后,再发送至动态会话集中存储设备。

  ②如果会话库中包含对应的会话ID,则节点X先从会话库中得到对应的静态数据。然后,发送动态数据请求给动态会话集中存储区。从回复消息中,提取相应的动态会话数据。服务器X将动态数据和静态数据结合在一起,得到用户完整的会话信息。

  (3)经过第(2)步得到完整的会话信息后,处理用户的请求,根据请求的内容进行相关处理,将处理结果返回给用户。处理结果中包含会话ID,服务器将会话ID作为Cookie的一个属性发送给客户端,用户后续访问将自动携带该Cookie属性。

  (4)任务完成后,服务器中存储的该用户动态会话信息可能发生改变。这时服务器X需要向动态会话集中存储设备发送存储/更新动态会话数据的命令,存储/更新对应的动态会话数据信息。若设备中没有该会话ID,则直接存储新用户的动态数据。根据处理后的会话信息中静态数据是否改变,决定是否发送广播消息。

  这种模式下,服务器处理完用户请求后,一般的数据处理中,静态数据具有稳定性,广播一次就能实现同步。更新的动态数据需要从处理节点发送到动态数据管理设备进行存储,由集中数据管理器进行存储处理。

3 模拟验证

  为了验证改进后Session复制算法的性能,使用同一应用系统分别采用不同的会话支持技术进行比较分析。在模拟过程中,应用系统采用“青岛某服装企业供应链系统”,搭建的集群环境采用八台处理机,其中一台为主服务器,作负载均衡器。采用Tomcat进行服务器集群及负载均衡。Session集中存储设备的大小配置为256 GB(根据需要更改大小)。

004.jpg

  如表1所示,采用tomcat集群中复制模式(会话复制)、Session集中存储模式和包含动态Session集中存储区的会话复制方式进行性能比较。

003.jpg

  模拟结果如图3所示,在初始阶段,处理性能都很高。当用户请求增加到一定数量时,服务器的性能下降,传统会话复制机制会因节点间传递信息量的剧增导致响应时间增大。会话集中存储方式下,因节点等待访问存储用户数据,响应时间相对改进后的算法较长。动态会话集中存储下的会话复制模式由于查找会话ID以及广播数据量相对较少,虽然加重了节点对会话数据的处理,但随着用户访问量的增多,系统处理效率仍处于相对稳定的状态。

  综上所述,动态会话集中存储下的会话复制模式在平均响应时间比较稳定地增长、系统访问量剧增时,系统处理性能仍然稳定,适用于节点数目相对较大的集群系统。

4 结束语

  针对会话复制方法无法适应大规模集群系统的问题,提出了动态会话集中存储的会话复制机制,将静态会话数据采取会话复制策略,而动态部分采取集中存储的策略,进而满足负载均衡系统中会话一致的要求。经实验验证,该方法可靠性好,性能稳定,可满足大型应用平台的会话需求。如何提高动态会话集中存储下的会话复制方法的稳定性是之后的研究重点。

  参考文献

  [1] 郭成城,晏蒲柳.一种异构Web服务器集群动态负载均衡算法[J].计算机学报,2005,28(2):179-184.

  [2] 陈一骄,卢锡城,时向泉,等.一种面向会话的自适应负载均衡算法[J].软件学报,2008,19(7):1828-1836.

  [3] 赵章界,余智华,张丙奇.HTTP协议流解析系统的设计与实现[J].计算机工程,2005,31(24):38-40,46.

  [4] 赵涓涓,刘涛,强彦,等.云计算中基于Session和内容等级的数据库请求分类算法[J].计算机科学,2013(2),40:177-179.


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。