全部产品
阿里云办公

DNS负载均衡(加权轮询)

更新时间:2018-05-10 16:09:06

负载均衡指在多台服务器提供同一个服务时,将访问流量分配到每台服务器上,以分散业务压力的方法。DNS负载均衡是在同一域名有多条解析记录(A记录或CNAME记录)时,利用加权轮询解析机制,为网站访问者分配不同的解析结果(IP地址或CNAME地址)。具体实现原理,参考文末 理解加权轮询

应用场景

如果您有多台服务器,需要将流量分摊到各个服务器上,您可以开启云解析负载均衡。您可以在云解析控制台手动开启或者关闭负载均衡;针对不同的解析记录,也可以设置不同的权重值。参与负载均衡的解析记录的默认权重值都是1。

使用限制

DNS负载均衡仅适用于相同主机记录值相同线路下的多个A记录或CNAME记录。具体使用规则如下:

限制 支持 不支持
记录类型 A记录、CNAME记录 其他记录类型
记录状态 处于 启用 状态的记录 处于 暂停锁定 状态的记录,以及泛解析记录
权重设置 同一线路中,有多个具有相同主机记录的A记录。
说明:最多支持对10条A记录进行加权轮询,默认权重值比为 1:1:1…
其他情形
解析线路 可对默认线路配置带权重的A记录,也可以对具体的线路配置。
说明:不同线路中,其权重相互独立。
针对不同线路,开启/关闭负载均衡。

操作流程

参照以下步骤来开启DNS负载均衡:

说明:在执行以下操作前,确保您的域名下存在相同主机记录、相同线路的多条A记录或CNAME记录。

  1. 登录到 云解析DNS控制台

  2. 选择目标域名,单击其 操作 列下的 解析设置

  3. 在左侧导航栏选择 流量管理

  4. 加权轮询 子页,选择相应子域名,单击其 操作 列下的 开启。开启加权轮询后,域名下的所有IP地址将按照负载均衡权重轮询返回。

    加权轮询

  5. 选择相应子域名,单击其 操作 列下的 设置权重。在 设置权重 页面,自定义参与负载均衡的每条解析记录的权重值。

    设置权重

  6. 单击 确认 完成配置。

理解加权轮询

假设您有 3 台服务器(IP 地址分别为1.1.1.12.2.2.23.3.3.3)提供同一服务(1个域名),且在解析设置中对应如下 3 条 A 记录:

  1. A www default 1.1.1.1 600
  2. A www default 2.2.2.2 600
  3. A www default 3.3.3.3 600

当Local DNS访问权威DNS,权威DNS将这3个解析记录全部返回给Local DNS,Local DNS再将所有的IP地址返回给网站访问者,网站访问者的浏览器会随机访问其中一个IP。

在无DNS负载均衡的权威DNS中,这种方法能够在一定程度上减轻单台服务器的压力,但它不能区分服务器的差异,不能反映服务器的当前运行状态。

轮询负载算法

DNS负载均衡可以采用简单的轮循负载算法。在开启DNS负载均衡后,权威DNS会根据解析记录的权重(默认权重1:1:1),轮询3个A记录,依次返回3个IP地址,以响应网站访问者的请求。DNS解析结果如下所示:

  1. User1 访问,返回 1.1.1.1
  2. User2 访问,返回 2.2.2.2
  3. User3 访问,返回 3.3.3.3
  4. User4 访问,返回 1.1.1.1
  5. ……

带权重的轮询负载算法

DNS负载均衡支持为不同的解析记录配置权重,视服务器的响应能力来分配其承担的流量比例。例如,将上述3条解析记录的权重比设置为2:1:1时,则DNS解析结果如下所示:

  1. User1 访问,返回 1.1.1.1
  2. User2 访问,返回 2.2.2.2
  3. User3 访问,返回 3.3.3.3
  4. User4 访问,返回 1.1.1.1
  5. User5 访问,返回 1.1.1.1
  6. User6 访问,返回 2.2.2.2
  7. ……