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

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

原创
作者头像
AIOPS
发布2023-10-11 14:49:16
5560
发布2023-10-11 14:49:16
举报
文章被收录于专栏:高可用高可用

1. 背景概述

上一篇文章(CLB是怎么均衡client流量的-短连接篇),测试验证了CLB与RS之间是短连接时,CLB是按照客户端的每个HTTP请求来均衡,无论client与CLB是长连接还是短连接。

那CLB和后端RS之间是长连接时,CLB如何均衡client流量呢?这片文章我们重点实验下这一点。

2. CLB与RS长连接实验环境

本次实验的配置环境与之前的一样,避免新看文章的读者不了解,这里再陈述一次:

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

CLB与Nginx开启长连接见第三部分

具体配置内容比较简单,这里略掉

3. 启用CLB与RS间长连接

3.1 启用

1、打开CLB界面,点击新建监听器

2、在打开页面,将 启用长连接 开关打开

3、在CLB安全组界面,启用默认放通

3.2 验证

从CLB官网文档了解到:CLB与后端服务之间使用长连接,CLB不再透传源IP,请从XFF中获取源IP。可以基于此规则,来判断长连接是否已开启

Nginx access.log配置文件如下:

代码语言:javascript
复制
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

access.log内容如下:

从日志可以看出,remote_addr是100.127.X.X,对应CLB网段;http_x_forwarded_for是180.153.X.X,对应我本机IP,符合官网说明。证明长连接已开启。

文档地址:负载均衡 七层个性化配置-操作指南-文档中心-腾讯云

4. 均衡验证

5.1 小规模验证

在浏览器,直接访问CLB的IP地址,看看返回情况。如果每次刷新,返回值都对应不同的nginx,证明是按请求轮询的。

5.1.1 浏览器和CLB是长连接

5.1.2 浏览器返回0

5.1.3 浏览器返回1

浏览器与CLB是长连接,每刷新一次,浏览器的结果都在0和1间轮番出现;说明尽管CLB和RS间启用了长连接,CLB还是按HTTP请求进行负载均衡。

5.2 大规模验证

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

5.2.1 PTS压测结果

平均响应时间从短连接的9.57ms降到8.24s了 ,说明启用长连接对降低链路消耗,有一定优势。

5.2.2 Nginx exporter监控

处理连接数和总请求数两个指标,两台机器结果一致,说明在CLB和RS是长连接情况下,负载也是均衡的。

5. 测试结果

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

另外,启用了长连接后,由于CLB不用每次HTTP请求都会和RS建连,理论上链路消耗时间会缩短。从pts的压测结果也能看到这一点。

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

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

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

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

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

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

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