基于负载均衡设备的会话保持方法及系统和负载均衡设备技术方案

技术编号:11805970 阅读:71 留言:0更新日期:2015-07-31 10:53
本发明专利技术公开了一种基于负载均衡设备的会话保持方法及系统和负载均衡设备,该方法包括以下步骤:接收来自客户端的HTTP请求;判断HTTP请求的URL和/或HTTP请求头部中是否嵌入有用于识别会话的会话标识;若嵌入有会话标识,则采用关键字匹配法或正则表达法提取会话标识;并判断当前是否存在与会话标识相对应的服务器;若存在与会话标识相对应的服务器,则将HTTP请求发送给与会话标识相对应的服务器;若没有嵌入有会话标识或不存在与会话标识相对应的服务器,则根据负载均衡调度算法将HTTP请求发送至服务器;接收所述服务器反馈的HTTP应答并转送至客户端。本发明专利技术可有效提高负载均衡设备的处理性能,无需要求客户端采用支持cookie的浏览器即可实现会话保持。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种基于负载均衡设备的会话保持方法及系统和负载均衡设备
技术介绍
负载均衡(Loadbalace)是一种服务器集群技术,是将客户端的大量请求按照一定的策略分发给多台服务器处理,使得整系统的处理能力达到或接近所有服务器处理能力之和的技术。会话保持(Sess1n Persistence)是指在负载均衡的过程中,通过某些技术方法对客户端请求进行识别,使得原本属于同一次会话的请求,尽可能的始终分发(或调度)到同一台服务器技术。对多台服务器负载均衡的情况下,每一次会话创建都只在当前的一台服务器上发生,其他服务器是没有的。负载均衡设备必须要识别出客户端请求中的会话,并将请求调度到最初创建该会话的服务器上,如果调度其他服务器上,则会导致会话无法持续,最终会话请求失败。如图1所示,负载均衡设备对A、B两台服务器做调度。客户端提交了一个登陆请求,被负载均衡设备调度到A服务器,并在A服务器上校验密码成功,则创建会话;紧接着客户端又提交了一个“查询订单”的请求,此时负载均衡设备必须要将该请求调度到A服务器,因为只有A服务器上存在该客户端已登陆过的会话状态,如果调度给B服务器,该服务器并不知道客户端的登陆状态,请求则会失败。当前存在的会话保持技术包括以下几种:(I)源IP会话保持(Source Address Persistence):基于源IP的会话保持技术,通过区分源IP的方法,将源IP相同的请求分发到同一台服务器。这种方式实现过程中,客户端往往处于内网环境,使用的IP地址是私网地址,在访问公网时经过了源地址转换,存在大量客户端使用同一个IP的情况。由于源IP会话保持是基于数据包的源地址实现的,会导致大量相同IP的客户端调度到同一服务器,从而调度不均衡。另外对于手机客户端,其源IP地址是变化地,不适用于源IP会话保持。(2)Cookie插入会话保持(Cookie Insert Persistence):客户端首次访问时,通过插入cookie,对客户端做上标记(标记的内容对应调度的服务器),使得客户端后续的请求中带有cookie标记,通过cookie标记的识别出被调度服务器,最终达到将同一客户端的所有请求分发到同一服务器的效果。由于其实现原理是基于cookie的方式,所以要求客户端的浏览器必须支持Cookie。(3) Cookie 改写会话保持(Cookie Rewrite Persistence):和 cookie 插入会话保持类似,同样是通过在Cookie中做标记来识别的客户端请求,不同的是负载均衡器并不插入新的cookie,而是通过改写服务器的cookie来实现。这种方式不仅要求客户端浏览器支持Cookie,而且要求服务器使用了 Cookie。(4)Cookie被动会话保持(Cookie Passive Persistence):在设备的数据库中记录下服务器在cookie中给客户端分配的sess1n id,以及sess1n id与服务器的对应关系。当客户端再次访问时,首先获取到客户端cookie中的sess1n id值,通过查找数据库,找到上一次调度的服务器,最终实现会话保持的目的。这种方案同样要求客户端支持cookie,并且服务器使用cookie记录Sess1n Id。(5) URL被动会话保持:通过获取URL中的sess1n id,记录每个会话所对应的服务器。这种方式只能记录URL中的sess1n id,在客户端请求的sess1n id并不在URL中,而是在提交的表单里时不适用。而且即使sess1n id在URL中,由于不同服务器的表现形式均不一样,使其识别存在困难。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的缺陷,提供一种基于负载均衡设备的会话保持方法及系统和负载均衡设备。本专利技术解决其技术问题所采用的技术方案是:一种基于负载均衡设备的会话保持方法,包括以下步骤:接收来自客户端的HTTP请求;判断所述HTTP请求的URL和/或HTTP请求头部中是否嵌入有用于识别会话的会话标识;若嵌入有会话标识,则采用关键字匹配法或正则表达法提取所述会话标识;并判断当前是否存在与所述会话标识相对应的服务器;若存在与所述会话标识相对应的服务器,则将所述HTTP请求发送给与所述会话标识相对应的服务器;若没有嵌入有会话标识或不存在与所述会话标识相对应的服务器,则根据负载均衡调度算法将所述HTTP请求发送至服务器;接收所述服务器反馈的HTTP应答并转送至所述客户端。优选地,还包括判断所述HTTP请求为POST请求还是GET请求;若为POST请求,则判断所述POST请求的表单中是否嵌入有用于识别会话的会话标识;若嵌入有会话标识,则采用关键字匹配法或正则表达法提取所述会话标识;并判断当前是否存在与所述会话标识相对应的服务器;若存在与所述会话标识相对应的服务器,则将所述HTTP请求发送给与所述会话标识相对应的服务器;若为GET请求、POST请求的表单没有嵌入有会话标识或不存在与所述会话标识相对应的服务器,则将所述HTTP请求发送至根据负载均衡调度算法确定的服务器。优选地,所述接收所述服务器反馈的HTTP应答并转送至所述客户端包括如下步骤:接收所述HTTP应答;判断所述HTTP应答头部或HTTP应答内容是否嵌入有用于识别会话的会话标识;若嵌入有会话标识,则采用关键字匹配法或正则表达法提取所述会话标识,将所述会话标识与服务器的对应关系存储在数据库中,并将所述HTTP应答转发给客户端;若不嵌入有会话标识,则将所述HTTP应答转发给客户端。优选地,所述采用关键字匹配法或正则表达法提取会话标识包括如下步骤:预设会话标识的关键字、偏移量以及预设会话标识格式;采用关键字匹配法根据所述关键字和偏移量提取会话标识,并判断是否成功提取所述会话标识;若提取失败,则采用正则表达法根据所述预设会话标识格式提取所述会话标识,否则结束会话标识的提取。本专利技术还提供一种负载均衡设备,包括:信息收发单元,用于接收来自客户端的HTTP请求,并将接收到的服务器反馈的HTTP应答转送至所述客户端;判断单元,用于判断所述HTTP请求的URL和/或HTTP请求头部中是否嵌入有用于识别会话的会话标识;第一处理单元,用于在嵌入有会话标识时,则采用关键字匹配法或正则表达法提取所述会话标识;并判断当前是否存在与所述会话标识相对应的服务器;若存在与所述会话标识相对应的服务器,则将所述HTTP请求发送给与所述会话标识相对应的服务器;当前第1页1 2 3 4 本文档来自技高网
...

【技术保护点】
一种基于负载均衡设备的会话保持方法,其特征在于,包括以下步骤:接收来自客户端的HTTP请求;判断所述HTTP请求的URL和/或HTTP请求头部中是否嵌入有用于识别会话的会话标识;若嵌入有会话标识,则采用关键字匹配法或正则表达法提取所述会话标识;并判断当前是否存在与所述会话标识相对应的服务器;若存在与所述会话标识相对应的服务器,则将所述HTTP请求发送给与所述会话标识相对应的服务器;若没有嵌入有会话标识或不存在与所述会话标识相对应的服务器,则根据负载均衡调度算法将所述HTTP请求发送至服务器;接收所述服务器反馈的HTTP应答并转送至所述客户端。

【技术特征摘要】

【专利技术属性】
技术研发人员:曾定国
申请(专利权)人:深信服网络科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1