开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

会话保持特性在ADC中的应用(一)

简介:
+关注继续查看

    会话保持是一种应用非常广泛的负载均衡特性,尤其对于一些特定的网络应用,以最典型的HTTP应用为例,在大多数电子商务系统或者需要进行用户身份认证的在线系统中,一个客户与应用服务器经常需要经过好几次的交互过程才能完成一笔交易或者一个请求。这种交互过程往往前后是密切相关的,例如我们在某些B2C网站上选购心怡的商品,将其放入“购物车”中,选购商品的过程,对于客户端和应用服务器来讲,实际上是在不断的进行交互过程,而达到某一个交互步骤时,例如进入“结算”步骤时,往往需要了解上一次,甚至是之前所有交互过程的处理结果,类似这种应用场景,后台服务器通常需要所有这些相关的交互过程,在一定时间内都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。

        这一系列相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。因此,ADC产品提供的会话保持功能需要充分考虑到不同的客户端情况、不同的应用场景和特点。下图简述了会话保持的工作流程:

persist tree

        会话保持表中每条记录的有效时间,是由其参数――空闲超时时间来决定。该参数实际上是一个计数器,每次有新建连接请求或已建立的连接中有数据在传输时,就会刷新会话保持表中的超时时间;当没有新建连接或者数据传输时,该值就开始按秒进行递减,一旦递减到0秒没有新建连接请求或没有数据传输,则将该会话保持记录从表中清除。如果超时时间之后同一个客户端又有新的连接请求,则按照以第一次连接请求,通过设定的负载均衡算法进行处理,此时,ADC设备会在会话保持表中重新添加该记录。因此,会话保持超时时间的长短,需结合具体的应用而定。

        下面简单介绍几种ADC常用的会话保持方式及其在AX设备上的配置:

1. 基于源IP地址的会话保持

        源IP地址会话保持就是将同一个源IP地址的连接或者请求认为是同一个用户,根据会话保持策略,在会话保持有效期内,将这些发自同一个源IP地址的连接/请求都转发到同一台服务器。如图所示:

clip_image004

        使用源IP地址会话保持功能的好处是既可以将其应用在L4层模式的虚拟服务器下,也可应用于L7层模式,因此具有最广泛的应用场景。但是使用此功能也经常会遇到两个问题:

        其一,客户端源IP地址有时候会发生变化,一些企业网或者城域网部署时,由于公网地址有限,通常会采用NAT Pool技术,在这种情况下,某些NAT设备会将同一个用户发起的多个请求采用不同的源地址发出。这样,基于源地址的会话保持则可能将这些请求“保持”在不同的服务器上,造成用户访问失败。因此,在这种情况下,可以通过在源地址会话保持中配置掩码的方式解决。比如掩码255.255.255.0代表凡是同一个C类地址发送过来的连接请求都是用同一条会话保持表项对应,以此来规避客户端IP地址发生变化的情况。

        其二,客户端通过相同代理(Proxy)服务器访问系统,一些企业网内部用户访问互联网资源需通过代理服务器访问;另外一些移动终端采用GPRS方式访问互联网时,某些移动运营商会通过WAP代理网关来访问互联网资源。无论是通过代理服务器,还是通过WAP网关,发起连接请求的源IP地址相对固定,这样,就会造成ADC设备将来自这些同一个源地址的访问请求,都保持到同一台服务器,如果访问源地址不够离散,就会引起后台服务器负载的不均衡。因此,发生此类问题时,通常需采用其他方式的会话保持,例如采用Cookie保持的方式等。

        在AX设备上启用源IP地址会话保持功能配置非常简单,只需要按照下图所示,两个步骤即可完成。

        第一步,创建源IP会话保持模板:

        image

        该模板参数中:

        匹配类型:--匹配到端口是指同一个源IP地址的客户端,再次访问相同VIP的端口时,按照会话保持表将本次会话保持到服务器的服务端口,此为缺省选项;

                           --匹配到服务器是指同一个源IP地址的客户端,再次访问相同VIP时,会话保持到相同服务器,不考虑客户端访问的是哪一个虚拟服务端口;

                           --匹配到服务组是在虚拟服务器HTTP端口上同时启用URL 或者Host switching功能时,客户端每次发起请求,ADC都会先按照URL/Host switching的匹配规则,选择匹配的服务组,之后再按照会话保持的机制,在匹配的服务组内按照会话保持表进行会话保持;

         PS:当URL/Host switching和会话保持同时启用时,匹配类型一定要选为“服务组”。

        子网掩码:是指匹配客户端源地址的精细度,即先前提到的在会话保持表中匹配掩码的长度,同一个子网的客户端会话保持到同一个服务器的服务端口上,缺省是32位的掩码,即指同一个主机;

        第二步,在虚拟服务器VIP下,启用该模板:

        image

        是不是非常简单的步骤呢?如果希望查看设备执行会话保持的状况,可以通过CLI方式输入:show session persist命令查看,下一期将介绍其他几个常用的会话保持方式,待续。。。

S.G.


本文转自 virtualadc 51CTO博客,原文链接:http://blog.51cto.com/virtualadc/564164


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【LeetCode133】克隆图(dfs和unordered_map)
节点数不超过 100 。 每个节点值 Node.val 都是唯一的,1 <= Node.val <= 100。
17 0
【计网修炼手册】五层协议-5应用层-电子邮件
《计算机组成原理》、《数据结构与算法》、《操作系统》、《计算机网络》不仅是大学信息科学与工程学院的核心课程,也是计算机考研专业基础综合408的考试内容。学习这些内容可能不见得像学习Java和GO一样能让你迅速找到工作,但他们作为计算机世界的基石是需要认真掌握的,这些知识是源源不断的技术浪潮中不会被淘汰的知识。
39 0
abap读取excel中的数据至内表
CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = lv_filename filetype = 'ASC' has_field_separator ...
1492 0
5. 应用服务器与微服务 - JavaEE基础系列
本文是JavaEE基础系列的第五节。 Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 什么是JSR参考实现? - JavaEE基础系列 什么是应用服务器? - JavaEE基础系列 Microservices(微服务) 是当今世界最火爆的软件架构。
1206 0
Oracle 12cR2中的ADG会话保留特性
    Oracle 12cR2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections    怎么理解呢,比如在Active Data Guard上的连接会话,在switchover的过程中会话连接会始终保持不会中断。
939 0
C# 获取Excel中的合并单元格
C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格。在取消合并单元格时需要逐个查找及取消,比较麻烦。这里分享一个简单的方法来识别Excel中的合并单元格,识别这些合并单元格之后对这些单元格进行取消合并操作,还可以进行其他操作如设置格式等。
1011 0
23704
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载