首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CLB是怎么均衡client流量的-短连接篇

CLB是怎么均衡client流量的-短连接篇

原创
作者头像
AIOPS
发布于 2023-10-10 13:29:18
发布于 2023-10-10 13:29:18
9131
举报
文章被收录于专栏:高可用高可用

1. 背景概述

一说起CLB的负载均衡策略, 可能很多人都耳熟能详:轮询、加权轮询、源地址hash、目标地址hash,但知道这些就够了吗?

这几天在一个客户在试用CLB,简要架构:CLB后面挂了12台Nginx,Nginx上面有lua程序做限流措施,Nginx后面是API server;QPS:经过CLB的并发在2.5W。问题是:他们担心CLB分发流量不均,导致Nginx负载不均,没办法设置限流策略。

想了解CLB是按客户端新建连接做均衡还是按总QPS做均衡,因为现在客户端大都支持长连接,如果按新建连接做均衡,每个client发起的HTTP请求不一样,大概率会导致负载不均。虽然CLB产研做了理论解释,但客户想验证证明。如何回答这个问题呢?

2. 什么是长连接/短连接

HTTP是基于TCP的,而TCP建连需要三次握手、断连需要四次挥手,所以连接建立和释放都是有时间开销的。

在HTTP中,长连接即在一个TCP连接中,发送多个HTTP请求;短连接即每发送一个HTTP请求,都要经过经过一次TCP建连和断连的过程,多个请求并发时,时间消耗相当可观。

HTTP不同版本、如何支持长短连接等具体的理论,大家自行查询,不在赘述,这里只列出关键的。

3. client与CLB的连接方式

HTTP1.1中,可以通过Connection这个header,值为keep-alive表示本端接受长连接,值为close表示不开长连接。下面通过浏览器抓包

3.1 长连接

长连接第一次请求,会有建连时间,如下图:

第二次请求,则没有建连时间,如下图,Initial connection时间已经消失了

4. CLB与RS短连接实验环境

本次主要是验证请求经过CLB后,是如何分发到RS上。所以简化一下架构:

一台CLB下面挂两个Nginx,CLB和Nginx间禁用短连接,两台Nginx静态页,一台返回0,一台返回1,通过并发访问Nginx静态页来模拟业务场景。看看会不会有不均的情况

由于CLB与后端RS的长连接和短连接是不同场景,本文先测试短连接场景

配置略

5. 均衡验证

5.1 小规模验证

在浏览器,直接访问CLB的IP地址,看看返回情况:

5.1.1 浏览器和CLB是长连接

5.1.2 浏览器返回0

5.1.3 浏览器返回1

浏览器与CLB是长连接,没刷新一次,浏览器的结果都在0和1间轮番出现。

5.2 大规模验证

通过腾讯云的PTS压测工具,模拟客户的真实流量,通过nginx-export观测nginx连接数

5.2.1 PTS压测结果

5.2.2 Nginx exporter监控

6. 结论

从上面测试可以得出结论,在CLB与RS间是短连接时,CLB不会考虑client与CLB是长连接还是短连接,直接按照总的HTTP请求的数量,并根据配置的负载均衡算法处理。本文用的负载均衡算法时RR,所以看到两台设备的请求几乎一样。

在实际场景下,客户端相当分散,在按HTTP请求均衡下,可以预期Nginx的负载是均衡的。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
这里有个问题哈。当client 和 clb是长连接的时候,采用默认轮询策略,所有请求会到同一个后端服务的。clb是根据连接数来负载均衡的。
这里有个问题哈。当client 和 clb是长连接的时候,采用默认轮询策略,所有请求会到同一个后端服务的。clb是根据连接数来负载均衡的。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
CLB是怎么均衡client流量的-长连接篇
上一篇文章(CLB是怎么均衡client流量的-短连接篇),测试验证了CLB与RS之间是短连接时,CLB是按照客户端的每个HTTP请求来均衡,无论client与CLB是长连接还是短连接。
AIOPS
2023/10/11
8370
腾讯网关 TGW 基础原理入门
作者:厉辉,腾讯后台研发高级工程师,当前在腾讯游戏后台团队工作,熟悉四七层负载均衡以及 API 网关等技术领域,同时也是 CNCF Ambassador 以及 Apache APISIX PMC。 本文是在组内技术分享的发言稿,主要介绍 TGW 基本原理和架构,同时为了加深理解,会辅助对比 TGW 与 LVS(ipvs)的异同。本次分享是偏基础性的 TGW 介绍,不会特别深入技术细节,目的是帮助需要用到 TGW 的同事快速的了解 TGW。 零、引言 TGW,全称 Tencent Gateway,是一套实现多
腾讯技术工程官方号
2022/04/14
4K0
腾讯网关 TGW 基础原理入门
clb连接数不均
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台云服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
王帅-smaitwang
2020/11/16
1.6K0
http协议的keepalive属性
在使用http的时候,有1.0的协议,有1.1的协议,两者最大的区别就是1.0的协议会将connection设置为close,从而是一种短连接的状态,从而每次进行传输数据的时候,都要三次握手,损耗性能,从而在1.1的协议中进行了改进,默认使用的连接保持的属性,从而提高了性能。
SRE运维实践
2019/07/08
1.2K0
http协议的keepalive属性
如何优化高并发TCP链接中产生的大量的TIME_WAIT的状态
线上有几台QPS每秒几万请求的服务器,大致访问链路如下:client -> nginx -> web 服务器,由于每台机器上混布了多个web服务并通过nginx反向代理统一分发请求,在服务升级的时候经常出现端口被占用的情况,排查问题时,发现系统过存在几万多个 time_wait状态。统计命令如下:
我是攻城师
2020/02/25
28.4K3
浅谈长连接负载均衡
hello,大家好,我是小楼,终于忙完了一阵,今天来更新一篇长连接的负载均衡问题。
龟仙老人
2022/10/28
1.9K0
浅谈长连接负载均衡
gRPC 网关,针对 HTTP 2.0 长连接性能优化,提升吞吐量
简单看下即可,由于含有定制化业务背景,架构图看不懂也没关系,后面我会对里面的核心技术点单独剖析讲解
微观技术
2021/07/05
4.3K0
「最佳实践」腾讯云CLB负载均衡通过TOA和XFF获取客户端真实IP:涵盖七层LB和NAT64 LB
随着互联网技术的飞速发展以及数字化转型的浪潮中,IPv6逐渐成为未来网络的主流协议,同时负载均衡也成为必不可少的组件,在使用过程中经常会遇到记录客户端真实IP地址的需求,本文将深入探讨NAT64 LB如何通过TOA(TCP Option Address)、以及七层LB如何通过XFF(X-Forwarded-For)机制获取客户端的真实IP地址,确保在复杂的网络环境和架构中也能精准地识别客户端身份。
RokasYang
2024/07/29
3.1K18
「最佳实践」腾讯云CLB负载均衡通过TOA和XFF获取客户端真实IP:涵盖七层LB和NAT64 LB
TCP接入层的负载均衡、高可用、扩展性架构
一、web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: 上游调用层,一般是browser或者APP 中间反向代理层,n
架构师之路
2018/03/01
1.8K0
TCP接入层的负载均衡、高可用、扩展性架构
长短连接对压测的影响有多大?!
使用jmeter工具压测时,使用长连接或短连接压测时往往会出现不同的结果,我们需要明确该请求支持什么连接;jmeter工具默认为长连接,如需短连接请求需在【HTTP请求】中取消KeppAlive勾选。
谭银
2021/02/25
2.4K0
腾讯云公网负载均衡技术实现详解
朱彬峰
2017/04/23
23.7K4
腾讯云公网负载均衡技术实现详解
常用云PaaS组件及开源组件业务运维指南
用于指导使用腾讯云的PaaS组件和常用开源组件进行业务开发的服务的部署实施环节和后续生产环境运维。文档摘取了腾讯云的官网文档中运维需要关注的技术指标,应用于初创团队快速对应用开发组件有一个快速了解。
ivanshang
2019/08/30
6.3K0
腾讯云负载均衡CLB的那些“独门利器”
今天就聊一聊腾讯云的负载均衡提供给客户的那些独有的特性,大家也可以了解下腾讯云负载均衡器的优势所在。
李想
2018/01/09
7.1K2
腾讯云负载均衡CLB的那些“独门利器”
go实现的压测工具【单台机器100w连接压测实战】
本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter、go实现的压测工具、云压测),对比这些压测工具,教大家如何选择一款适合自己的压测工具,本文还有两个压测实战项目:
link1st
2019/09/20
11.1K0
go实现的压测工具【单台机器100w连接压测实战】
gRPC 长连接在微服务业务系统中的实践
作者 | 张琦 长连接和短连接哪个更好, 一直是被人反复讨论且乐此不疲的话题。有人追求短连接的简单可靠, 有人却对长连接的低延时趋之若鹜。那么长连接到底好在哪里, 它是否是解决性能问题的银弹? 本文就
深度学习与Python
2020/11/16
4.1K0
gRPC 长连接在微服务业务系统中的实践
一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等
关于“负载均衡”的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务。
JackJiang
2019/04/29
4.2K0
计算机不会骗人,事出反常必有妖!
我们这系统是使用nginx+多台业务服务器部署的架构,nginx充当代理转发,也起到负载均衡的作用。
轩辕之风
2022/04/02
5430
计算机不会骗人,事出反常必有妖!
一文搞懂各种场景下的数据路由转发(二)——云厂商篇
目前腾讯云、阿里云等大型云厂商基本上都是通过提供CLB服务进行路由转发,什么是CLB?
粲然
2024/05/06
9440
一文搞懂各种场景下的数据路由转发(二)——云厂商篇
压力测试之常见容量故障案例与避坑指南
云组件检查项案例全球加速ECDN限频: 压测时需绕过ECDN20200506,项目压测经过ecdn,导致触发了ecdn单个ip的限频安全产品WAF限频: 确保WAF套餐配置达到容量要求20200602,某项目中使用的WAF的QPS套餐最大10w,导致压测QPS达到10w后出现限频限频: 确保压测机IP被添加到安全打击白名单20200605,某项目压测时未将压测机IP未加入白名单,导致触发WAF限频,接口QPS曲线不平稳连接方式:确保回源连接方式为长连接,短连接需解释20220510,系统中WAF的回源方式设
katelyn
2022/09/14
1.2K0
亿级流量网站架构核心技术【笔记】(一)
3.在有限资源的情况下,一定是先解决当下最核心的问题,预测并发现未来可能出现的问题,一步步解决最痛点的问题,即满足需求的系统是不断迭代优化出来的 A.高并发原则 1.无状态:比较容易进行水平扩展,应用无状态,配置文件有状态 2.拆分:在系统设计初期,是做一个大而全的系统还是按功能模块拆分系统,这个需要根据环境进行权衡
硬核项目经理
2019/08/06
2.1K0
亿级流量网站架构核心技术【笔记】(一)
推荐阅读
相关推荐
CLB是怎么均衡client流量的-长连接篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档