会话保持特性在ADC中的应用(一)
2011-05-12 11:25
363 查看
会话保持是一种应用非常广泛的负载均衡特性,尤其对于一些特定的网络应用,以最典型的HTTP应用为例,在大多数电子商务系统或者需要进行用户身份认证的在线系统中,一个客户与应用服务器经常需要经过好几次的交互过程才能完成一笔交易或者一个请求。这种交互过程往往前后是密切相关的,例如我们在某些B2C网站上选购心怡的商品,将其放入“购物车”中,选购商品的过程,对于客户端和应用服务器来讲,实际上是在不断的进行交互过程,而达到某一个交互步骤时,例如进入“结算”步骤时,往往需要了解上一次,甚至是之前所有交互过程的处理结果,类似这种应用场景,后台服务器通常需要所有这些相关的交互过程,在一定时间内都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。
这一系列相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。因此,ADC产品提供的会话保持功能需要充分考虑到不同的客户端情况、不同的应用场景和特点。下图简述了会话保持的工作流程:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170463DzzS.jpg)
会话保持表中每条记录的有效时间,是由其参数――空闲超时时间来决定。该参数实际上是一个计数器,每次有新建连接请求或已建立的连接中有数据在传输时,就会刷新会话保持表中的超时时间;当没有新建连接或者数据传输时,该值就开始按秒进行递减,一旦递减到0秒没有新建连接请求或没有数据传输,则将该会话保持记录从表中清除。如果超时时间之后同一个客户端又有新的连接请求,则按照以第一次连接请求,通过设定的负载均衡算法进行处理,此时,ADC设备会在会话保持表中重新添加该记录。因此,会话保持超时时间的长短,需结合具体的应用而定。
下面简单介绍几种ADC常用的会话保持方式及其在AX设备上的配置:
1. 基于源IP地址的会话保持
源IP地址会话保持就是将同一个源IP地址的连接或者请求认为是同一个用户,根据会话保持策略,在会话保持有效期内,将这些发自同一个源IP地址的连接/请求都转发到同一台服务器。如图所示:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170464lMxK.jpg)
使用源IP地址会话保持功能的好处是既可以将其应用在L4层模式的虚拟服务器下,也可应用于L7层模式,因此具有最广泛的应用场景。但是使用此功能也经常会遇到两个问题:
其一,客户端源IP地址有时候会发生变化,一些企业网或者城域网部署时,由于公网地址有限,通常会采用NAT Pool技术,在这种情况下,某些NAT设备会将同一个用户发起的多个请求采用不同的源地址发出。这样,基于源地址的会话保持则可能将这些请求“保持”在不同的服务器上,造成用户访问失败。因此,在这种情况下,可以通过在源地址会话保持中配置掩码的方式解决。比如掩码255.255.255.0代表凡是同一个C类地址发送过来的连接请求都是用同一条会话保持表项对应,以此来规避客户端IP地址发生变化的情况。
其二,客户端通过相同代理(Proxy)服务器访问系统,一些企业网内部用户访问互联网资源需通过代理服务器访问;另外一些移动终端采用GPRS方式访问互联网时,某些移动运营商会通过WAP代理网关来访问互联网资源。无论是通过代理服务器,还是通过WAP网关,发起连接请求的源IP地址相对固定,这样,就会造成ADC设备将来自这些同一个源地址的访问请求,都保持到同一台服务器,如果访问源地址不够离散,就会引起后台服务器负载的不均衡。因此,发生此类问题时,通常需采用其他方式的会话保持,例如采用Cookie保持的方式等。
在AX设备上启用源IP地址会话保持功能配置非常简单,只需要按照下图所示,两个步骤即可完成。
第一步,创建源IP会话保持模板:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170466mGDi.png)
该模板参数中: 匹配类型:--匹配到端口是指同一个源IP地址的客户端,再次访问相同VIP的端口时,按照会话保持表将本次会话保持到服务器的服务端口,此为缺省选项; --匹配到服务器是指同一个源IP地址的客户端,再次访问相同VIP时,会话保持到相同服务器,不考虑客户端访问的是哪一个虚拟服务端口; --匹配到服务组是在虚拟服务器HTTP端口上同时启用URL 或者Host switching功能时,客户端每次发起请求,ADC都会先按照URL/Host switching的匹配规则,选择匹配的服务组,之后再按照会话保持的机制,在匹配的服务组内按照会话保持表进行会话保持; PS:当URL/Host switching和会话保持同时启用时,匹配类型一定要选为“服务组”。 子网掩码:是指匹配客户端源地址的精细度,即先前提到的在会话保持表中匹配掩码的长度,同一个子网的客户端会话保持到同一个服务器的服务端口上,缺省是32位的掩码,即指同一个主机; 第二步,在虚拟服务器VIP下,启用该模板:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170471HlXk.png)
是不是非常简单的步骤呢?如果希望查看设备执行会话保持的状况,可以通过CLI方式输入:show session persist命令查看,下一期将介绍其他几个常用的会话保持方式,待续。。。
S.G.
这一系列相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。因此,ADC产品提供的会话保持功能需要充分考虑到不同的客户端情况、不同的应用场景和特点。下图简述了会话保持的工作流程:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170463DzzS.jpg)
会话保持表中每条记录的有效时间,是由其参数――空闲超时时间来决定。该参数实际上是一个计数器,每次有新建连接请求或已建立的连接中有数据在传输时,就会刷新会话保持表中的超时时间;当没有新建连接或者数据传输时,该值就开始按秒进行递减,一旦递减到0秒没有新建连接请求或没有数据传输,则将该会话保持记录从表中清除。如果超时时间之后同一个客户端又有新的连接请求,则按照以第一次连接请求,通过设定的负载均衡算法进行处理,此时,ADC设备会在会话保持表中重新添加该记录。因此,会话保持超时时间的长短,需结合具体的应用而定。
下面简单介绍几种ADC常用的会话保持方式及其在AX设备上的配置:
1. 基于源IP地址的会话保持
源IP地址会话保持就是将同一个源IP地址的连接或者请求认为是同一个用户,根据会话保持策略,在会话保持有效期内,将这些发自同一个源IP地址的连接/请求都转发到同一台服务器。如图所示:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170464lMxK.jpg)
使用源IP地址会话保持功能的好处是既可以将其应用在L4层模式的虚拟服务器下,也可应用于L7层模式,因此具有最广泛的应用场景。但是使用此功能也经常会遇到两个问题:
其一,客户端源IP地址有时候会发生变化,一些企业网或者城域网部署时,由于公网地址有限,通常会采用NAT Pool技术,在这种情况下,某些NAT设备会将同一个用户发起的多个请求采用不同的源地址发出。这样,基于源地址的会话保持则可能将这些请求“保持”在不同的服务器上,造成用户访问失败。因此,在这种情况下,可以通过在源地址会话保持中配置掩码的方式解决。比如掩码255.255.255.0代表凡是同一个C类地址发送过来的连接请求都是用同一条会话保持表项对应,以此来规避客户端IP地址发生变化的情况。
其二,客户端通过相同代理(Proxy)服务器访问系统,一些企业网内部用户访问互联网资源需通过代理服务器访问;另外一些移动终端采用GPRS方式访问互联网时,某些移动运营商会通过WAP代理网关来访问互联网资源。无论是通过代理服务器,还是通过WAP网关,发起连接请求的源IP地址相对固定,这样,就会造成ADC设备将来自这些同一个源地址的访问请求,都保持到同一台服务器,如果访问源地址不够离散,就会引起后台服务器负载的不均衡。因此,发生此类问题时,通常需采用其他方式的会话保持,例如采用Cookie保持的方式等。
在AX设备上启用源IP地址会话保持功能配置非常简单,只需要按照下图所示,两个步骤即可完成。
第一步,创建源IP会话保持模板:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170466mGDi.png)
该模板参数中: 匹配类型:--匹配到端口是指同一个源IP地址的客户端,再次访问相同VIP的端口时,按照会话保持表将本次会话保持到服务器的服务端口,此为缺省选项; --匹配到服务器是指同一个源IP地址的客户端,再次访问相同VIP时,会话保持到相同服务器,不考虑客户端访问的是哪一个虚拟服务端口; --匹配到服务组是在虚拟服务器HTTP端口上同时启用URL 或者Host switching功能时,客户端每次发起请求,ADC都会先按照URL/Host switching的匹配规则,选择匹配的服务组,之后再按照会话保持的机制,在匹配的服务组内按照会话保持表进行会话保持; PS:当URL/Host switching和会话保持同时启用时,匹配类型一定要选为“服务组”。 子网掩码:是指匹配客户端源地址的精细度,即先前提到的在会话保持表中匹配掩码的长度,同一个子网的客户端会话保持到同一个服务器的服务端口上,缺省是32位的掩码,即指同一个主机; 第二步,在虚拟服务器VIP下,启用该模板:
![](http://virtualadc.blog.51cto.com/attachment/201105/12/3027116_1305170471HlXk.png)
是不是非常简单的步骤呢?如果希望查看设备执行会话保持的状况,可以通过CLI方式输入:show session persist命令查看,下一期将介绍其他几个常用的会话保持方式,待续。。。
S.G.
相关文章推荐
- 会话保持特性在ADC中的应用
- 会话保持特性在ADC中的应用(二)
- 应用服务器做了负载均衡之后如何保持用户登录状态的会话信息?
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
- 不同应用环境下会话保持方式的选择
- .NET特性(Attribute)应用一例
- haproxy实现会话保持微信H5牛牛棋牌源码出售:stick table
- C++11新特性应用--实现延时求值(std::function和std::bind)
- 【五大特性尽显Win8应用】
- 集群中的session共享存储 实现会话保持
- 中英文支持-应用Struts 2 的国际化支持特性
- apache安装、简单配置负载均衡和会话保持
- CCNA笔记——802规定,网络层,传输层,会话层,表示层,应用层,封装
- 谈PHP5.3闭包特性在实际应用中的问题
- 如何让.NET Core应用的配置与源文件保持同步?
- [置顶] MySQL 新特性应用JSON
- C++11新特性应用--占位符(std::placeholders std::is_placeholder std::is_bind_expression)
- HTML5-桌面式web应用-地理定位, webworker, 会话历史