[发明专利]一种负载均衡方法、负载均衡器及系统无效
| 申请号: | 201310566155.7 | 申请日: | 2013-11-14 |
| 公开(公告)号: | CN103607356A | 公开(公告)日: | 2014-02-26 |
| 发明(设计)人: | 陈飞 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
| 主分类号: | H04L12/803 | 分类号: | H04L12/803;H04L12/24 |
| 代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 田俊峰 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 负载 均衡 方法 均衡器 系统 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种负载均衡方法、负载均衡器及系统。
背景技术
集群技术推出后,负载均衡作为集群技术的核心得到了广泛关注研究,负载均衡既要在保证后端服务器之间的负载相当,在需要会话保持的场景中又需要正确地把同一会话的请求分配到相应的后端服务器,保证客户端与后端服务器之间的会话不丢失。
LVS(Linux Virtual Server,Linux虚拟服务器)是开源的负载均衡技术,通过在Netfilter(网络筛选系统)的检测点(HOOK)点上插入调用方法,在IP(Internet Protocol,网络之间互连的协议)层实现数据包的透明转发。LVS维护一个连接表信息,保存客户端IP、端口和后端服务器IP和端口信息,当有数据包到达时,根据IP、端口信息查询连接表得到转发目标。
目前LVS是利用源IP进行会话保持的,到达LVS的数据包中相同源IP的数据一律分配到同一后端服务器,即当TCP(Transmission Control Protocol,传输控制协议)的SYN(同步)包到达LVS时,LVS会查询连接表中是否存在与此SYN包源IP一致的连接,如果存在,则把SYN包转发到连接记录的后端服务器,如果不存在则按配置的调度算法调度一台后端服务器后转发。
上述方案的缺点是在高速代理上网环境下可能会存在会话丢失和严重的负载不均衡问题,图1示出了多代理服务器上网环境下的会话流程,大量客户端用户的请求,通过多台代理服务器的ISP(Internet Service Provider,互联网服务提供商)或企业内部网发送给负载均衡器连接,来自同一客户的同一个会话的两个请求可能走不同的代理服务器到达LVS(负载均衡器),LVS判断源IP不同,把两个请求分配到不同的后端服务器器,导致会话丢失;比如,LVS将来自Proxy1的访问请求,根据代理服务器1的IP地址,利用负载均衡算法选择图1最上面一台服务器进行处理;而将来自Proxy2的访问请求,根据代理服务器2的IP地址,利用负载均衡算法选择图1最下面一台服务器进行处理;导致会话丢失。图2示出了单代理服务器上网环境下的会话流程,大量客户端的请求通过单代理服务器到达LVS,LVS判断源IP相同,把这些请求都分配到同一台后端服务器,导致单台服务器过载,其他服务器却很空闲。比如,来自三台客户端的访问请求都到达LVS,LVS判断都是来自Proxy1的访问请求(源IP相同),负载均衡器根据会话保持把所有连接都转发给一台服务器,这样,就导致服务器的负载不均衡。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的负载均衡器、系统和相应的负载均衡方法。
依据本发明的一个方面,提供了一种负载均衡方法,用于在服务器之间实现负载均衡,该方法包括:
当收到客户端的请求时,从所述请求中获取会话身份证SessionId;
从会话Session表中查找与所述SessionId对应的服务器,将所述请求发送给该服务器;其中,所述Session表中保存有与SessionId对应的服务器地址。
可选地,所述SessionId从所述请求中的小型文本文件Cookie信息中获取;
将所述请求发送给该服务器之前,利用预先缓存的同步SYN包、确认ACK包与该服务器建立连接。
可选地,当从所述Session表中没有查到与所述SessionId对应的服务器时,根据负载均衡原则,选择一台服务器,利用所述缓存SYN包、ACK包与该服务器建立连接,将所述请求发送给该服务器。
可选地,收到服务器的响应数据包后,当所述响应数据包的中包括SessionId时;将所述SessionId和该服务器的地址保存到Session表中;
根据连接信息,将所述响应数据包转发给客户端。
可选地,当所述响应数据包中不包括SessionId时,根据连接信息,将所述响应数据包转发给客户端。
根据本发明的另一方面,提供了一种负载均衡器,用于在服务器之间实现负载均衡,该负载均衡器包括:
客户端身份信息获取模块,用于当收到客户端的请求时,从所述请求中获取会话身份证SessionId;
发送模块,用于从会话Session表中查找与所述SessionId对应的服务器,将所述请求发送给该服务器;其中,所述Session表中保存有与SessionId对应的服务器地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310566155.7/2.html,转载请声明来源钻瓜专利网。





