两个后端实例做负载均衡:华为云 ELB 三层组件拆解

举报
茉莉风铃 发表于 2026/10/01 23:31:59 2026/10/01
【摘要】 用华为云弹性负载均衡 ELB 把两台后端实例做成负载均衡,讲清负载均衡器、监听器、后端服务器组三层组件关系,以及健康检查与流量分配策略的作用。涉及控制台操作以官网文档为准。

image.png

单台服务器扛流量,遇到访问高峰容易顶不住,万一这台机器出问题,服务就直接断了。弹性负载均衡(Elastic Load Balance,ELB)做的就是“在前面挡一道,把请求分摊到多台后端”这件事。这篇文章用一个最直观的场景——两台后端实例、一个负载均衡器——把 ELB 的核心组件和配置思路理清楚。文中涉及的具体控制台操作以华为云官方文档为准。

一、为什么需要负载均衡而不是堆单机配置

把一台服务器升到顶配,成本和收益很快就不划算,而且再强的单机也有宕机风险。负载均衡换了个思路:用多台普通服务器一起扛,前面放一个均衡器做流量调度。这样有两个直接好处,一是横向扩展,加机器就能提吞吐;二是消除单点故障,某一台挂了,流量自动切到正常的那台,用户几乎无感。

ELB 是华为云上的托管服务,不用自己维护均衡器软件,重点在“怎么把后端组起来、怎么判断哪台健康”。下面按组件拆开说。

二、ELB 由哪几部分组成

根据华为云官方文档,弹性负载均衡由三部分构成:负载均衡器、监听器、后端服务器。负载均衡器是承载业务的实体;监听器是最小业务单元,负责监听某个协议和端口上的请求;后端服务器组是一个或多个实际处理请求的服务器的逻辑集合。

理解这三层关系很关键:请求先到负载均衡器,经过监听器,再转发到绑定的后端服务器组里的某台服务器。一台负载均衡器可以挂多个监听器(比如同时处理 80 和 443),每个监听器绑定一个后端服务器组。

三、我们的场景:两台后端 + 一个均衡器

假设有两台弹性云服务器(ECS)都部署了同一个 Web 服务,监听本机 8080 端口。目标是让用户访问一个统一地址时,请求被分摊到这两台。拓扑是这样的:

            统一访问地址
                 │
            【负载均衡器】
                 │
           【监听器 :80】
                 │
       【后端服务器组 (加权轮询)】
          ├── 后端实例 A :8080
          └── 后端实例 B :8080

后端实例 A、B 在同一 VPC 内,部署相同代码。它们各自提供一个简单的健康检查接口(返回 200 即视为正常),供 ELB 探测。

四、后端健康检查接口怎么写

健康检查本质就是 ELB 定期请求后端某个路径,看返回是不是正常。后端只要暴露一个轻量接口即可,不查库、不做重活:

# health.py(后端实例上运行,监听 8080)
from fastapi import FastAPI
app = FastAPI()

@app.get("/health")
def health():
    return {"status": "ok"}

只要 /health 能返回 200,ELB 就认为这台后端健康、可以继续分发流量。某一台进程挂了,这个接口不再响应,ELB 自动把它从转发名单里摘掉,流量只走另一台。

五、监听器与后端服务器组的配置要点

在控制台创建时,几个概念要对应上(具体操作以华为云官方文档为准):监听器配置协议和端口,例如 HTTP、80;监听器绑定一个后端服务器组;后端服务器组里添加两台 ECS,协议和端口填后端实际监听的(如 HTTP、8080);开启健康检查,探测路径填 /health。

流量分配策略决定请求怎么分。官方文档列出的策略包括加权轮询、加权最少连接、源 IP 算法等。最常用的是加权轮询:两台权重相同就轮流分;想让性能强的那台多扛,就把它的权重调高。源 IP 算法则保证同一客户一段时间内的请求落到同一台,适合有会话状态的场景。

六、容易踩的几个坑

第一,后端服务器组的协议要和监听器匹配,比如监听器是 HTTP,后端组也得是 HTTP,否则关联不上。第二,健康检查的路径和端口要填对,很多人配了健康检查却忘了后端真有这个接口,结果两台都被判异常、流量全空。第三,两台后端的有状态数据(比如本地会话)不会自动同步,要做会话保持或把状态外移到 Redis,否则用户请求在兩台间跳会变登录态丢失。

七、小结

ELB 解决的是“多台服务器如何被统一调度”的问题,核心就三层:负载均衡器接流量、监听器定规则、后端服务器组装实例。配上健康检查,单台故障能自动绕开。两台后端做负载均衡只是最小实践,理解了组件关系,后面扩到十台、接 HTTPS 监听器、配转发策略,都是在同一套模型上加法。具体创建步骤以华为云官方文档的最新说明为准。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。