负载均衡会话保持是什么?详解文档介绍内容

一、会话保持

负载均衡会话保持文档介绍内容

会话保持是负载均衡器设备的一种机制,用于识别客户端与服务器之间交互过程的关连性,在进行负载均衡的同时,保证一系列相关联的访问请求会保持分配到同一台服务器上,这种机制对于需要多次交互才能完成一笔交易或一个请求的应用尤为重要,如电子商务应用系统或需要进行用户身份认证的在线系统。

二、常用会话保持技术

1. 源地址会话持久性(Source Address Affinity)

简介

源地址会话持久性仅基于源IP地址跟踪会话,当客户端请求连接发送到配置源地址持久性的虚拟服务器时,负载均衡会检查该客户端之前是否已连接,如果负载均衡设备已存在当前客户端的会话保持连接条目,负载均衡设备会将请求发送至后端相同服务器。

特点

实现简单:只需要根据数据包三、四层的信息就可以实现。

负载均衡会话保持文档介绍内容

效率高:效率比较高。

存在问题:当多个客户是通过代理或地址转换的方式访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡,当同一个客户端产生大量并发访问时,要求分配到多个服务器上处理的同时进行会话保持,这时基于客户端源地址的会话保持方法也会导致负载均衡失效。

Cookie会话保持

简介

Cookie会话持久性是使用存储在客户端计算机上的HTTP cookie,负载均衡设备将客户端请求始终发送至后端相同服务器,此功能需要负载均衡设备在七层负载模式下运行。

四种cookie持久性方法

HTTP Cookie插入方法 (HTTP Cookie Insert):在客户端请求返回给客户端时,在HTTP响应标头的cookie字插入负载均衡自定义的cookie信息。

HTTP Cookie重写方法 (HTTP Cookie Passive):负载均衡器会截取从服务器发送到客户端的名为的Cookie标头,并覆盖cookie的名称和值,新cookie名为负载均衡设备自定义的cookie名称,一般包含处理连接的服务器的地址和端口。

负载均衡会话保持文档介绍内容

HTTP Cookie被动方法 (HTTP Cookie Rewrite):负载均衡将请求发送至该服务器,后端服务器进行HTTP响应一个cookie并发回负载均衡设备,然后负载均衡设备将带有服务器写的cookie值的HTTP回复返回到客户端。

Cookie哈希方法 (Cookie Hash):负载均衡设备将服务器响应的客户端的cookie信息与后端服务器IP地址和端口进行hash,在客户端再次请求时根据包头里包含的cookie信息进行hash将请求发送至后端指定服务器。

特点

适用场景:适用于基于浏览器访问的web应用。

优点:可以解决源地址会话持久性存在的问题,但需要后端服务器支持cookie。

3. 哈希会话保持(Hash Persistence)

简介

哈希会话保持的一个基本概念就是将一个连接中的源 IP 和目的 IP 地址进行 Hash 计算,根据计算得到的结果并根据后台存在多少台服务器来选择将请求分配到某台服务器。

特点

固定分配:在后台服务器的健康状态不发生改变的时候,每个特定的源 IP地址被分配到的服务器是固定的。

无会话保持表:可以没有会话保持表,而仅仅是根据计算的结果来确定一个源 IP 被分配到那台服务器。

适用场合:通常被用于一些特定场合,如要求客户端按照IP地址被固定分配的场合,或者在一些会话保持表查询的开销已经远远大于 Hash 计算开销的情况下,采用 hash 会话保持可以提高系统的处理能力和响应速度。

可编程控制的会话保持

简介

在实际的使用过程中,我们往往可能遇到更加复杂的一些情况,一个最典型的情况就是会话的特征并不在一些通常的位置,或者通用的名称,而是一个自定义的名称在一个特定的位置,weblogic,AAA 协议的应用,在支持编程自定义的负载均衡设备中,可以采用可编程控制方式来实现灵活的会话保持策略。

示例代码

rule WeblogicJSessionPersist {
when HTTP_RESPONSE { //在服务器返回的时候触发事件
if { [HTTP::cookie exists "JSESSIONID"] } { //在返回内容的 Cookie 中查找 JESSIONID
persist add uie [HTTP::cookie "JSE
}
}
when HTTP_REQUEST { //在客户端发起请求的时候触发事件
set jsess [findstr [HTTP::uri] "jsessionid" 11 ";"] //在请求的 URI 中查找 jsessionid 字符串,方法是获取从 URI 中找到

三、长连接和会话保持的关系

HTTP七层业务

假设 Client 端访问是 HTTP/1.1 协议,头部信息中设置 Connection:keep-alive,通过 CLB,再访问到后端服务器,此时不开会话保持,下一次访问,能否访问到同一台服务器?

答:不一定,HTTP keep-alive 是指 TCP 连接在发送后将仍然保持打开状态,以便浏览器可以继续通过相同的连接发送请求,如果不开启 Cookie 会话保持,下一次访问时,CLB会根据轮询策略随机挑选一台后端服务器,建议开启会话保持,当设置 Cookie 会话保持的时间为1000秒时,Client 端再次发起请求时,由于距离上一次请求已经超过了75秒,TCP的连接要重新建立,应用层判断 Cookie,找到同一台后端服务器,Client 访问的服务器还是上一次访问的那一台。

TCP四层业务

假设 Client 端发起访问,传输层协议是 TCP,启用长连接,但没有开基于源 IP 的会话保持,下一次访问,同一个 Client,能否访问到同一个机器?

答:不一定,根据四层的实现机制,当 TCP 启用长连接时,如果该长连接一直没有断开,前后两次访问都是同一条连接,则可以访问到同一台机器,如果第二次访问时,第一条连接由于其他原因(网络重启、连接超时)被释放了,这时第二次访问就有可能调度到其他后端服务器上,且长连接默认全局的超时时间是900秒,若没有新请求则释放。

四、配置会话保持

以百度智能云为例:

1、登录负载均衡控制台。

2、单击需要配置会话保持的负载均衡实例 ID,进入负载均衡详情页。

3、选择监听器管理标签页。

4、单击需要配置会话保持的负载均衡监听器后的修改。

5、选择是否需要开启会话保持功能,单击开启,输入保持时间,单击提交。

以上就是关于“负载均衡会话保持文档介绍内容”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-12-12 01:37
下一篇 2024-12-12 01:46

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信