告别单点故障:阿里云CLB负载均衡从入门到实战

告别单点故障:阿里云CLB负载均衡从入门到实战

引言:一台服务器不够用怎么办?

假设你做了一个网站,刚开始只有几十个人访问,一台ECS服务器完全够用。但某天你的网站突然火了------流量暴涨,服务器CPU飙到100%,网站卡得打不开,甚至直接宕机。更糟糕的是,这台服务器恰好在这时候出了硬件故障,你的网站彻底"挂"了,用户完全访问不了。

这就是典型的单点故障问题------所有鸡蛋放在一个篮子里,篮子一旦出问题,全军覆没。

怎么解决?答案是:多买几台服务器,然后把流量均匀地分给它们 。谁来做这个"流量分发"的工作?就是今天的主角------阿里云CLB(传统型负载均衡)

一、什么是CLB?

CLB的全称是Classic Load Balancer(传统型负载均衡) ,它是阿里云提供的一种流量分发控制服务

用人话说就是:CLB像一个"流量调度员" 。用户访问你的网站时,请求先到达CLB,CLB再根据你设定的规则,把请求分发给后端的多台服务器。这样一来:

  • 流量分摊:多台服务器共同承担访问压力,不会让某一台累垮

  • 故障自动切换:某台服务器宕机了,CLB自动把流量转到其他健康的服务器上,用户几乎无感知

  • 弹性扩展:业务增长了,随时加服务器;流量下降了,随时减服务器

一句话总结:CLB让你用多台普通服务器,拼出一台"超级服务器"的效果。

CLB由三部分组成:
组成部分 说明
CLB实例 一个运行的负载均衡服务,拥有一个固定的服务地址(IP或域名),所有请求先到达这里
监听(Listener) 负责"听"什么类型的请求(比如HTTP的80端口、HTTPS的443端口),并把请求转给后端服务器
后端服务器 真正处理业务请求的ECS实例,也就是你的应用服务器
CLB的核心优势:
  • 高可用:采用全冗余设计,没有单点故障,支持同城容灾,可用性高达99.95%

  • 可扩展:随时增减后端服务器数量,业务增长无压力

  • 低成本:相比购买昂贵的硬件负载均衡设备,成本可下降60%

  • 安全:结合云盾,可提供5Gbps的防DDoS攻击能力

  • 高并发:单实例最大支持100万并发连接

二、CLB的工作原理(小白也能看懂)

CLB背后到底是怎么工作的?我们用一张图来理解:

原理其实很简单:

CLB采用集群部署,不是一台机器在干活,而是一群机器在协作。

四层(TCP/UDP)负载均衡 :由LVS(Linux Virtual Server)+ Keepalived实现。LVS是一个高性能的Linux负载均衡软件,它工作在网络的"传输层",只关心IP地址和端口号,不关心具体传输的内容。比如你的应用用的是TCP协议(如数据库连接),就走这条路。

七层(HTTP/HTTPS)负载均衡 :由Tengine 实现。Tengine是淘宝网基于Nginx开发的高性能Web服务器,它工作在"应用层",能看懂HTTP协议的内容,可以根据URL路径、域名等信息来做更精细的流量分发。比如/api/*的请求分到一组服务器,/static/*的请求分到另一组。

举个例子:四层像快递分拣中心,只看包裹上的地址(IP和端口),按地址分发;七层像超市的导购,不仅看你的购物清单,还能根据你要买的东西(URL路径)给你指路到不同的货架。

集群的优势:LVS集群内的每台机器都会将会话同步给其他机器。如果某一台LVS机器故障了,流量会自动转移到其他正常的机器上,用户完全感知不到。

三、环境准备

在开始创建CLB之前,需要做好以下准备:

1. 准备后端服务器

CLB需要至少2台ECS实例作为后端服务器。建议满足以下条件:

  • 与CLB在同一个地域(Region)

  • 同一个专有网络VPC

  • 已经部署好你的应用(比如Web服务,监听80端口)

小贴士:如果还没有ECS,可以先创建2台按量付费的ECS,安装Nginx并启动服务,用于测试。

2. 账号与权限

建议使用RAM子账号进行操作,并授予AliyunSLBFullAccess权限。

四、创建CLB实例

步骤一:进入CLB控制台

登录阿里云控制台,在顶部搜索框输入"传统型负载均衡CLB",进入产品控制台。

步骤二:创建实例
  1. 在实例列表页面,点击 「创建实例」

  2. 配置以下关键参数:

配置项 说明 建议值
付费类型 按量付费适合测试,包年包月适合生产 按量付费
地域 必须与ECS在同一个地域 如:华东1(杭州)
实例类型 公网:自动分配公网IP,用户从互联网访问 公网
规格 小型规格适合入门场景 slb.s1.small
  1. 点击 「立即购买」 ,完成创建

创建完成后,CLB实例会获得一个公网IP地址,这就是用户访问的统一入口。

五、配置CLB(添加监听和后端服务器)

实例创建好了,但还不能直接用------需要配置监听后端服务器

步骤一:打开监听配置向导

在实例管理页面,找到刚刚创建的CLB实例,点击操作列的 「监听配置向导」

步骤二:配置监听

监听决定了CLB"听"什么类型的请求。

以最常见的HTTP监听为例:

配置项 说明 示例值
监听协议 选择HTTP(七层)或TCP(四层) HTTP
监听端口 CLB监听的端口,用户访问时用这个端口 80
调度算法 流量分配策略 轮询(RR)------按顺序依次分发

配置完成后,点击 「下一步」

步骤三:添加后端服务器

这一步是把你的ECS实例加入到CLB的服务池中。

  1. 在"后端服务器"页面,选择 「默认服务器组」

  2. 点击 「添加」 ,勾选你想要加入的ECS实例

  3. 配置每个ECS的端口权重

配置项 说明
端口 ECS上应用监听的端口(如Nginx默认80)
权重 数值越高,被分配到的流量越多

权重的作用:假设ECS01权重为100,ECS02权重为50,那么ECS01收到的请求大约是ECS02的2倍。如果你想临时让某台服务器"休息"(比如要升级维护),可以把它的权重设为0,CLB就不会再给它转发请求了。

  1. 点击 「下一步」
步骤四:配置健康检查(重要!)

健康检查是CLB的"自动体检"功能。

CLB会定期向后端服务器发送探测请求,检查服务器是否"活着"。如果某台服务器连续几次健康检查失败,CLB就认为它"病了",自动停止给它转发流量;等它恢复健康了,CLB再自动把它加回来。

配置项 说明 建议值
健康检查 是否开启 开启(强烈建议)
健康检查协议 HTTP监听建议用HTTP HTTP
健康检查路径 检查哪个URL /(根路径)或/health
响应超时时间 等待响应的最长时间 5秒
健康检查间隔 多久检查一次 2秒
不健康阈值 连续失败几次判定为不健康 3次
健康阈值 连续成功几次判定为恢复健康 3次

注意 :健康检查使用的源IP地址段是100.64.0.0/10,请确保后端ECS的安全组和防火墙没有屏蔽这个地址段。

配置完成后,点击 「下一步」 ,确认信息后点击 「提交」

六、调试与验证

配置完成后,怎么确认CLB正常工作了呢?

验证一:访问CLB的公网IP

在浏览器中输入CLB实例的公网IP地址,多次刷新页面:

  • 如果后端ECS部署的是不同的页面内容(比如ECS01显示"Server 1",ECS02显示"Server 2"),你会看到页面在几台服务器之间轮流切换

  • 这说明CLB已经成功将请求分发到了不同的后端服务器上

验证二:模拟故障(高可用测试)
  1. 登录ECS控制台,手动停止其中一台ECS实例

  2. 再次访问CLB的公网IP

  3. 你会发现:网站依然可以正常访问!因为CLB检测到这台ECS"挂了",自动把流量全部转给了其他健康的服务器

  4. 重新启动这台ECS,等它恢复健康后,CLB会自动把它加回来

这个测试完美验证了CLB的高可用能力------单台服务器故障不影响整体服务。

验证三:查看监控数据

在CLB控制台的实例详情页,可以查看流量监控数据,包括:

  • 入流量和出流量

  • 请求数量

  • 后端服务器的健康状态

这些数据可以帮助你了解业务的访问情况,及时发现问题。

七、CLB使用小贴士

1. 四层和七层怎么选?

场景 推荐
TCP/UDP协议的应用(如数据库、游戏) 四层监听(TCP/UDP)
HTTP/HTTPS的Web应用,需要路径转发 七层监听(HTTP/HTTPS)
简单Web应用,不需要高级路由 两者皆可

2. 会话保持(Session Stickiness)

如果你的应用需要把同一个用户的请求始终发到同一台服务器(比如用户登录状态保存在本地Session),可以开启会话保持功能。CLB会记住这个用户,后续请求都转发到同一台ECS。

3. 后端服务器要"长一样"

CLB后端的多台ECS应该部署相同的应用,这样才能保证用户无论被分到哪台服务器,得到的服务都是一致的。

4. 安全组记得放行

CLB的健康检查和流量转发需要访问ECS的端口,请确保ECS的安全组放行了对应的端口(如80、443等)。

5. 不要用公网IP直接访问后端ECS

在生产环境中,建议后端ECS不要绑定公网IP,只通过CLB对外提供服务。这样既安全(外部无法直接访问ECS),又省钱(ECS到CLB走内网,不产生公网流量费用)。

总结

阿里云CLB是一款简单、强大、高可用的流量分发服务。通过本文,你应该已经掌握了:

  1. CLB是什么:一个将流量分发到多台后端服务器的"流量调度员"

  2. 工作原理:四层基于LVS+Keepalived,七层基于Tengine,集群部署保证高可用

  3. 核心价值:消除单点故障、提升系统可用性、弹性扩展应对流量波动

  4. 创建与配置:创建CLB实例 → 配置监听 → 添加后端服务器 → 开启健康检查

  5. 验证方法:访问CLB公网IP测试分发效果,模拟ECS故障测试高可用

无论是个人博客、企业官网,还是高并发的电商平台,CLB都是构建高可用架构的基石。记住:永远不要把所有的流量压力压在一台服务器上------用CLB,让你的业务稳如泰山

相关推荐
hz567894 小时前
电子远程评标系统哪家好?安全、合规、易用平台评测指南
安全·云计算·音视频·实时音视频·信息与通信
翼龙云_cloud7 小时前
腾讯云代理商: 腾讯云qGPU怎么破解算力浪费难题?
云计算·腾讯云·qgpu
Database_Cool_9 小时前
内存数据库持久化方案:阿里云 Tair 持久内存型数据不丢失
数据库·阿里云
逆向编程11 小时前
MySQL 负载均衡完整入门实战教程
mysql·adb·负载均衡
阿乔外贸日记11 小时前
意大利进口主力产品及主要合作供应国
大数据·人工智能·物联网·搜索引擎·云计算
云服务器代理商11 小时前
AWS Bedrock 指南:模型接入、Knowledge Base RAG、Agents 与计费方式
云计算·aws·亚马逊云服务器·aws bedrock·aws代理·亚马逊云代理商
spider_xcxc12 小时前
阿里云NAS配置完全指南:从概念到实战
阿里云·云计算
我登哥MVP13 小时前
Hadoop成长史-从Nutch子项目到大数据生态王者
java·大数据·hadoop·分布式·云原生·云计算