前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CLB是怎么均衡client流量的-短连接篇

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

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

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 背景概述
  • 2. 什么是长连接/短连接
  • 3. client与CLB的连接方式
    • 3.1 长连接
    • 4. CLB与RS短连接实验环境
    • 5. 均衡验证
      • 5.1 小规模验证
        • 5.1.1 浏览器和CLB是长连接
        • 5.1.2 浏览器返回0
        • 5.1.3 浏览器返回1
      • 5.2 大规模验证
        • 5.2.1 PTS压测结果
    • 6. 结论
    相关产品与服务
    负载均衡
    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档