You need to enable JavaScript to run this app.
导航
实现负载均衡
最近更新时间:2024.12.11 17:39:53首次发布时间:2022.04.25 16:02:10

本文档介绍如何在火山引擎云解析(DNS)中实现基于 DNS 的负载均衡。

功能概述

如果一个记录集包含多个记录值,而且每个记录值都有一个权重,那么云解析 DNS 会统计记录集中所有记录值的权重的和,并计算出每个记录值所占的权重比例。根据每个记录值所占的权重比例,云解析 DNS 会在响应相同比例的 DNS 查询请求时返回该记录值。
例如,www.example.com 下有一个记录集,包含两个记录值 10.0.0.110.0.0.2,其权重分别为 1 和 3。如果云解析 DNS 收到 100 条匹配该记录集的 DNS 查询请求,25 条 DNS 查询请求的响应中的记录值是 10.0.0.1,75 条 DNS 查询请求的响应中的记录值是 10.0.0.2

  • 在云解析 DNS 的控制台中,云解析 DNS 自动为您管理记录集。您可以为一条解析记录创建多个记录值。然后,您可以通过为记录值设置权重实现基于 DNS 的负载均衡。
  • 在云解析 DNS 的 OpenAPI 中,您可以通过记录集实现基于 DNS 的负载均衡。

云解析 DNS 对负载均衡有以下限制:

  • 对于 A 和 AAAA 类型的记录,您可以启用或禁用负载均衡。禁用负载均衡后,云解析 DNS 会在收到 DNS 查询请求后返回所有的记录值。记录值的顺序是随机的。
  • 对于 TXT、MX、SRV、NS、CAA 和 URL 类型的记录,负载均衡默认是禁用的并且您无法开启。
  • 云解析 DNS 自动为 CNAME 记录开启负载均衡并默认为 CNAME 记录设置了权重。您无法为 CNAME 记录关闭负载均衡。这样,即使您添加了多条 CNAME 记录,云解析 DNS 每次也只会返回一条 CNAME 记录。
  • 参见 功能版本规格 了解云解析 DNS 对记录集中的解析记录数量和权重值范围的限制。

示例

  • 您分别设置两条记录值的权重为 4 和 1。4/(4+1) = 80% 的流量会被路由到第 1 个记录值;1/(4+1)=20% 的流量会被路由到第 2 个记录值。
  • 您分别设置三条记录值的权重为 8、6、3。8/(8+6+3) = 47% 的流量会被路由到第 1 个记录值;6/(8+6+3) = 35% 的流量会被路由到第 2 个记录值;3/(8+6+3) = 18% 的流量会被路由到第 3 个记录值。

操作场景

一个常见的场景是新服务的灰度发布。新服务有独立的 IP 地址。您可以先为新服务设置较小的权重,使少量的流量被路由到新服务的 IP 地址。经过监控和测试,您通过增加权重来逐渐增加路由到新服务的 IP 地址的流量,并最终实现新服务的全量发布。
假设您的业务域名是 test.example.com。该域名指向的 IP 地址是 2.3.4.5。您需要灰度发布一个新服务。新服务的 IP 地址是 10.10.10.10。您希望 22% 的用户流量被路由到 10.10.10.10,78% 的用户流量被路由到 2.3.4.5

操作步骤

参见以下步骤使用户流量可以按照场景示例中的比例分配。本文假设您已经在云解析 DNS 中添加了域名 example.com 和对应的解析记录 test.example.com

  1. 打开 test.example.com 解析记录的 编辑记录 页面。参见 添加、修改或删除解析记录

  2. 编辑记录 页面,设置以下参数。
    基本信息

    参数

    描述

    域名

    设置为 test

    记录类型

    设置为 A

    TTL

    设置为 10分钟

    线路

    设置为 默认线路

    负载均衡

    设置为 开启

    记录值

    记录值

    权重

    是否启用

    2.3.4.5

    78

    启用

    10.10.10.10

    22

    启用

  3. 设置完成后,点击 提交