功能介绍
ALB 提供“跨可用区负载均衡”功能。该功能在两个层面实现:
- ALB 实例层面:实例层面的“跨可用区负载均衡”功能默认开启,且无法关闭。
- 服务器组层面:服务器组层面的“跨可用区负载均衡”功能默认开启。您可以在服务器组层面按需开启或关闭该功能。关闭该功能后,ALB 会按照服务器组的配置来分发请求。
ALB 实例部署到一个地域下的多个可用区时,每个可用区中会有一个实例节点。默认情况下,一个可用区的实例节点会将接收到的请求分发给实例所在的所有可用区中的后端服务器。该方式可以避免因单可用区资源不足而带来的性能瓶颈问题,但同时也会带来一定的访问延时。
在一些对时延非常敏感的场景如金融交易、实时通信和物联网等,您可以在服务器组层面关闭“跨可用区负载均衡”功能。关闭该功能后,实例节点只将接收到的请求分发给同可用区中的后端服务器,从而提升业务访问速度。
请求路由
以下示意图分别展示了开启和关闭“跨可用区负载均衡”功能后,实例节点如何路由客户端请求。
假设 ALB 实例被部署到了一个地域下的可用区 A 和可用区 B,并挂载了这两个可用区中的后端服务器。
开启“跨可用区负载均衡”功能
- 场景1:可用区 A 和可用区 B 中的后端服务器的健康检查状态均正常
可用区 A 中的实例节点接收客户端请求,然后将请求分发给可用区 A 和可用区 B 中的后端服务器。
可用区 B 中的实例节点接收客户端请求,然后将请求分发给可用区 A 和可用区 B 中的后端服务器。

- 场景2:可用区 A 中的后端服务器的健康检查状态正常,可用区 B 中的后端服务器的健康检查状态异常
可用区 A 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。
可用区 B 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。

- 场景3:可用区 A 中的后端服务器的健康检查状态正常,可用区 B 中的后端服务器被从服务器组中移除
可用区 A 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。
可用区 B 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。

关闭“跨可用区负载均衡”功能
- 场景1:可用区 A 和可用区 B 中的后端服务器的健康检查状态均正常
可用区 A 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。
可用区 B 中的实例节点接收客户端请求,然后只将请求分发给可用区 B 中的后端服务器。

- 场景2:可用区 A 中的后端服务器的健康检查状态正常,可用区 B 中的后端服务器的健康检查状态异常
可用区 A 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。
可用区 B 中的实例节点接收客户端请求,直接返回 502 状态码。

- 场景3:可用区 A 中的后端服务器的健康检查状态正常,可用区 B 中的后端服务器被从服务器组中移除
可用区 A 中的实例节点接收客户端请求,然后只将请求分发给可用区 A 中的后端服务器。
可用区 B 中的实例节点接收客户端请求,直接返回 503 状态码。

使用限制
使用“跨可用区负载均衡”功能时,请您关注以下使用限制:
- 在您关闭了服务器组的“跨可用区负载均衡”功能后,不能开启“基于 Cookie 的会话保持”功能。反之,在您开启服务器组的“基于 Cookie 的会话保持”功能后,不能关闭“跨可用区负载均衡”功能。
- 对于开启“远端IP”功能的 IP 类型服务器组,不能关闭“跨可用区负载均衡”功能。
- 如果您关闭了服务器组的“跨可用区负载均衡”功能,该服务器组将不能关联基础版 ALB 实例。对于已经关联到基础版 ALB 实例的服务器组,您不能关闭服务器组的“跨可用区负载均衡”功能。
配置步骤
您可以通过以下任一方式关闭或开启服务器组层面的“跨可用区负载均衡”功能:
- 方式一:在创建服务器组的过程中进行配置
- 在 服务器组 页面,单击 创建后端服务器组。
- 在 创建后端服务器组 页面,设置 跨AZ负载均衡。
- 方式二:创建服务器组后,通过编辑操作进行配置
- 在 服务器组 页面,找到您需要配置的服务器组,然后单击服务器组名称进入详情页。
- 单击页面右上角的编辑。
- 设置 跨AZ负载均衡。