tencent cloud

负载均衡

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
使用场景
技术原理
产品对比
使用约束
Service Regions and Service Providers
购买指南
计费概述
计费项
CLB 资源包
购买方式
欠费说明
产品属性选择
快速入门
域名化负载均衡快速入门
负载均衡快速入门
IPv6 负载均衡快速入门
CentOS 下部署 Nginx
CentOS 下部署 Java Web
操作指南
负载均衡实例
负载均衡监听器
后端服务器
健康检查
证书管理
日志管理
监控告警
访问管理
传统型负载均衡
实践教程
部署证书到负载均衡(双向认证)
负载均衡开启 Gzip 配置及检测方法说明
HTTPS 转发配置入门指南
如何获取客户端真实 IP
负载均衡配置监控告警最佳实践
产品高可用说明
均衡算法选择与权重配置示例
配置 WAF 对负载均衡的监听域名进行 Web 安全防护
配置 IAP 对负载均衡的域名和路径的web访问进行身份验证
配置 IAP 对负载均衡的域名和路径的程序化访问进行身份验证
运维指南
客户端 timewait 过多解决方案
负载均衡HTTPS服务性能测试
压力测试常见问题
CLB 证书操作权限问题
故障处理
UDP 健康检查出现异常
API 文档
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
常见问题
计费相关
负载均衡配置相关
健康检查异常排查
HTTPS 相关
WS/WSS 协议支持相关
HTTP/2 协议支持相关
默认域名阻断提示
服务等级协议
联系我们
词汇表

会话保持

PDF
聚焦模式
字号
最后更新时间: 2024-10-10 15:56:25
会话保持可使得来自同一 IP 的请求被转发到同一台后端服务器上。默认情况下,负载均衡会将每个请求分别路由到不同后端服务器实例负载。但是,您可以使用会话保持功能使特定用户的请求被路由到同一台后端服务器实例上,这样可以使某些需要保持会话的应用程序(如购物车)合理地工作。

四层会话保持

四层协议(TCP/UDP)支持基于源 IP 的会话保持能力,会话保持时间可设为30 - 3600秒中的任意整数值,超过该时间阈值,会话中无新请求则断开会话保持状态,会话保持与均衡方式相关:
均衡方式为“加权轮询”时,根据后端服务器的权重分发请求,支持基于源 IP 的会话保持。
均衡方式为“加权最小连接数”时,根据服务器负载和权重来综合调度,不支持会话保持。

七层会话保持

七层协议(HTTP/HTTPS)支持基于 Cookie 插入的会话保持能力(由负载均衡器向客户端植入 Cookie),会话保持时间设置支持30 - 3600秒,会话保持与均衡方式相关:
均衡方式为“加权轮询”时,根据后端服务器的权重分发请求,支持基于 Cookie 插入的会话保持。
均衡方式为“加权最小连接数”时,根据服务器负载和权重来综合调度,不支持会话保持。
均衡方式为 “IP Hash” 时,支持基于源 IP 的会话保持,不支持基于 Cookie 插入的会话保持。

连接超时时间

当前 HTTP 连接超时时间(keepalive_timeout)默认为75秒,如需调整请开通 个性化配置。超过该时间阈值,会话中无数据传输则断开连接。 当前 TCP 连接的超时时间暂时不支持调整,默认为900秒。超过该时间阈值,会话中无数据传输则断开连接。

配置会话保持

1. 登录 负载均衡控制台,单击需要配置会话保持的负载均衡实例 ID,进入负载均衡详情页。
2. 选择监听器管理标签页。
3. 单击需要配置会话保持的负载均衡监听器后的修改
4. 选择是否需要开启会话保持功能,单击按钮开启,输入保持时间,单击提交

长连接和会话保持的关系

长连接的开启方式请参见 配置 HTTP 监听器配置 HTTPS 监听器

场景1:HTTP 七层业务

假设 Client 端访问是 HTTP/1.1 协议,头部信息中设置 Connection:keep-alive。通过 CLB,再访问到后端服务器,此时不开会话保持,下一次访问,能否访问到同一台服务器?
答:不能。
首先,HTTP keep-alive 是指 TCP 连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了带宽。CLB 集群的默认超时时间是75秒(75秒内无新请求刷新,则默认断开 TCP 连接)。
HTTP keep-alive 是由 Client 端跟 CLB 建立的,若此时没有开启 Cookie 会话保持,则下一次访问,CLB 会根据轮询策略,随机挑选一台后端服务器,此前的长连接等于白费了。
因此建议开启会话保持。
当设置 Cookie 会话保持的时间为1000秒时,Client 端再次发起请求。由于距离上一次请求,已经超过了75秒,TCP的连接要重新建立。应用层判断 Cookie,找到同一台后端服务器,Client 访问的服务器还是上一次访问的那一台。

场景2:TCP 四层业务

假设 Client 端发起访问,传输层协议是 TCP,启用长连接。但没有开基于源 IP 的会话保持。下一次访问,同一个 Client,能否访问到同一个机器?
答:不一定。
首先,根据四层的实现机制,当 TCP 启用长连接时,如果该长连接一直没有断开,前后两次访问都是同一条连接,则可以访问到同一台机器。如果第二次访问时,第一条连接由于其他原因(网络重启、连接超时)被释放,这时第二次访问就有可能调度到其他后端服务器上,且长连接默认全局的超时时间是900秒,即若没有新请求,则释放。
长连接的开启方式请参见 配置 HTTP 监听器配置 HTTPS 监听器

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈