流量管理器路由方法

Azure 流量管理器支持使用四种流量路由方法来确定如何将网络流量路由到不同的服务终结点。 流量管理器将流量路由方法应用于它收到的每个 DNS 查询。 流量路由方法确定要在 DNS 响应中返回哪个终结点。

流量管理器中提供了四种流量路由方法:

  • 优先级如果想要使用主服务终结点来处理所有流量,并提供备份来防范主终结点或备份终结点不可用的情况,可以选择“优先级”。
  • 加权如果想要跨一组终结点来分配流量,不管是平均分配还是根据所定义的权重进行分配,可以选择“加权”。
  • 性能如果终结点位于不同的地理位置,并且你希望最终用户依据最低网络延迟使用“最近的”终结点,可以选择“性能”。
  • 地理选择“地理”可根据用户的 DNS 查询所源自的地理位置将用户定向到特定终结点(“Azure”、“外部”或“嵌套”)。 这使流量管理器客户可以启用特定的方案:在这些方案中,了解用户的地理区域,并基于该地理区域路由用户很重要。 示例包括遵守数据所有权要求、内容本地化和用户体验,以及测量来自不同区域的流量。

所有流量管理器配置文件都包括监视终结点运行状况以及终结点自动故障转移的设置。 有关详细信息,请参阅流量管理器终结点监视。 一个流量管理器配置文件只能使用一种流量路由方法。 可以随时为配置文件选择其他流量路由方法。 一分钟内即可应用所做的更改,不会导致停机。 可以通过嵌套式流量管理器配置文件来组合使用多种流量路由方法。 使用嵌套可以启用复杂且灵活的流量路由配置,满足更大、更复杂应用程序的需求。 有关详细信息,请参阅嵌套式流量管理器配置文件

“优先级”流量路由方法

组织往往会提供一个或多个备份服务来防范主服务发生故障,从而确保其服务的可靠性。 Azure 客户可以通过“优先级”流量路由方法来轻松实现此故障转移模式。

Azure 流量管理器的“优先级”流量路由方法

流量管理器配置文件包含服务终结点的优先顺序列表。 默认情况下,流量管理器将所有流量发送到主终结点(优先级最高)。 如果主终结点不可用,流量管理器会将流量路由到第二个终结点。 如果主终结点和辅助终结点都不可用,流量会转到第三个终结点,依此类推。 终结点的可用性取决于配置的状态(已启用或已禁用)和正在进行的终结点监视。

配置终结点

在 Azure Resource Manager 中,可以使用每个终结点的“priority”属性显式配置终结点优先级。 此属性是一个介于 1 和 1000 之间的值。 值越小,优先级越高。 终结点不能共享优先级值。 该属性的设置是可选的。 如果省略该属性,会根据终结点顺序使用默认优先级。

“加权”流量路由方法

使用“加权”流量路由方法可以均匀分布流量,或使用预定义的权重。

Azure 流量管理器的“加权”流量路由方法

在“加权”流量路由方法中,需要为流量管理器配置文件中的每个终结点分配一个权重。 该权重是从 1 到 1000 的整数。 此参数是可选的。 如果省略此参数,流量管理器会使用默认权重“1”。 权重越高,优先级就越高。

对于收到的每个 DNS 查询,流量管理器会随机选择一个可用终结点。 选择哪个终结点取决于分配到所有可用终结点的权重。 对所有终结点使用相同的权重会导致均匀分布流量。 对特定的终结点使用较高或较低的权重会导致这些终结点在 DNS 响应中的返回次数较多或较少。

加权方法可以实现一些有用的方案:

  • 应用程序逐步升级:分配要路由到新终结点的流量百分比,并随着时间的推移逐渐将流量增加到 100%。
  • 将应用程序迁移到 Azure:创建包含 Azure 终结点和外部终结点的配置文件。 调整终结点的权重,优先选择新终结点。
  • 适用于更多容量的云爆发:通过将本地部署放在流量管理器配置文件之后,快速将本地部署扩展到云中。 当你需要在云中获得额外的容量时,可以添加或启用更多终结点,并指定哪部分流量将流向每个终结点。

Resource Manager Azure 门户支持加权流量路由的配置。 也可以使用 Resource Manager 版本的 Azure PowerShell、CLI 和 REST API 配置权重。

必须知道,客户端及其用来解析 DNS 名称的递归 DNS 服务器会缓存 DNS 响应。 这种缓存可能会影响到加权流量分布。 如果客户端和递归 DNS 服务器的数目较大,流量分布将按预期工作。 但是,如果客户端或递归 DNS 服务器的数目较小,缓存可能会严重影响流量分布。

常见用例包括:

  • 开发和测试环境
  • 应用程序间通信
  • 目标用户群体较小、共享一个公用递归 DNS 基础结构的应用程序(例如,公司的员工通过代理进行连接)

这些 DNS 缓存影响常见于所有基于 DNS 的流量路由系统,不只存在于 Azure 流量管理器上。 在某些情况下,显式清除 DNS 缓存可能会解决问题。 在另外一些情况下,可能更适合使用替代性流量路由方法。

“性能”流量路由方法

在国家/地区的两个或更多位置部署终结点,将流量路由到“最靠近”用户的位置,即可改善许多应用程序的响应能力。 “性能”流量路由方法提供这种能力。

Azure 流量管理器的“性能”流量路由方法

“最靠近”的终结点不一定是地理距离最近的终结点。 “性能”流量路由方法通过测试网络延迟来确定最靠近的终结点。 流量管理器维护一份 Internet 延迟表,用于跟踪 IP 地址范围与每个 Azure 数据中心之间的往返时间。

流量管理器在 Internet 延迟表中查找传入 DNS 请求的源 IP 地址。 流量管理器在处理该 IP 地址范围的请求时保持最低延迟的 Azure 数据中心内选择一个可用终结点,并在 DNS 响应中返回该终结点。

流量管理器工作原理中所述,流量管理器不会直接从客户端接收 DNS 查询。 DNS 查询来自客户端配置使用的递归 DNS 服务。 因此,用于确定“最靠近”终结点的 IP 地址不是客户端的 IP 地址,而是递归 DNS 服务的 IP 地址。 在实践中,此 IP 地址是客户端的适当代理。

流量管理器定期更新 Internet 延迟表,反映全国 Internet 的变化以及新的 Azure 区域。 但是,由于 Internet 上的负载会实时变化,应用程序性能也会随之变化。 “性能”流量路由不会监视给定服务终结点上的负载。 但是,如果某个终结点变得不可用,则流量管理器不会在 DNS 查询响应中包括该终结点。

需要注意的要点:

  • 如果配置文件包含同一 Azure 区域中的多个终结点,流量管理器会在该区域中的可用终结点之间均匀分布流量。 如果想要在某个区域中采用不同的流量分布,可以使用嵌套式流量管理器配置文件
  • 如果最近的 Azure 区域中所有启用的终结点已降级,则流量管理器会将流量移到下一个最近的 Azure 区域中的终结点。 如果想要定义首选故障转移顺序,请使用嵌套式流量管理器配置文件
  • 对外部终结点或嵌套式终结点使用“性能”流量路由方法时,需要指定这些终结点的位置。 请选择离部署最近的 Azure 区域。 这些位置是 Internet 延迟表支持的值。
  • 选择终结点的算法是确定性的。 同一个客户端重复发出的 DNS 查询会定向到同一个终结点。 通常,客户端在遍历时使用不同的递归 DNS 服务器。 客户端可以路由到不同的终结点。 更新 Internet 延迟表也可能会影响路由。 因此,“性能”流量路由方法不保证始终将客户端路由到同一个终结点。
  • 更改 Internet 延迟表时,可能会注意到某些客户端被定向到其他终结点。 这种路由更改基于当前延迟数据,因此更加准确。 进行这些更新很重要,可以确保在 Internet 持续发展的情况下“性能”流量路由的准确性。

地理流量路由方法

流量管理器配置文件可以配置为使用“地理”路由方法,以便根据用户的 DNS 查询所源自的地理位置将用户定向到特定终结点(“Azure”、“外部”或“嵌套”)。 这使流量管理器客户可以启用特定的方案:在这些方案中,了解用户的地理区域,并基于该地理区域路由用户很重要。 示例包括遵守数据所有权要求、内容本地化和用户体验,以及测量来自不同区域的流量。 为地理路由分配配置文件时,与该配置文件关联的每个终结点都需要有一组分配给它的地理区域。 地理区域的粒度可以是以下级别:

  • 世界 - 任何区域
  • 区域分组 - 例如,非洲、中东、澳大利亚/太平洋等。
  • 国家/地区 - 例如,爱尔兰、秘鲁等。
  • 省/自治区/直辖市 - 例如,美国加利福尼亚州、澳大利亚昆士兰州、加拿大阿尔伯达省等(注意:只有澳大利亚、加拿大、英国和美国中的省/自治区/直辖市才支持此粒度级别)。

将一个或一组区域分配到某个终结点后,来自这些区域的任何请求仅路由到该终结点。 流量管理器使用 DNS 查询的源 IP 地址来确定用户从中进行查询的区域 - 通常,这将是代表用户执行查询的本地 DNS 解析程序的 IP 地址。

Azure 流量管理器的“地理”流量路由方法

流量管理器读取 DNS 查询的源 IP 地址,并确定它所源自的地理区域。 随后,它会查找并查看是否存在此地理区域所映射到的终结点。 此查找从最低粒度级别(即“省/自治区/直辖市”如果支持的话,否则为“国家/地区”级别)开始,一直向上查找,直到最高级别(即“世界”)。 使用此遍历找到的第一个匹配项将指定为要在查询响应中返回的终结点。 当与“嵌套”类型终结点匹配时,将基于其路由方法返回该子配置文件中的终结点。 以下几点适用于此行为:

  • 当路由类型是“地理路由”时,只能将一个地理区域映射到流量管理器配置文件中的一个终结点。 这可确保用户的路由是确定性的,并且客户可以启用需要明确地理边界的方案。
  • 如果用户的区域归入两个不同终结点的地理映射下,流量管理器将选择具有最低粒度的终结点,并且不会考虑将请求从该区域路由到其他终结点。 示例:考虑包含两个终结点(终结点 1 和终结点 2)的“地理路由”类型配置文件。 终结点 1 配置为接收来自爱尔兰的流量,终结点 2 配置为接收来自欧洲的流量。 如果请求来自爱尔兰,始终会将它路由到终结点 1。
  • 由于一个区域只能映射到一个终结点,因此流量管理器将返回该终结点,而不管该终结点是否处于正常状态。

    Important

    我们强烈建议客户使用地理路由方法将其与具有子配置文件(每个子配置文件中至少包含两个终结点)的“嵌套”类型终结点关联。

  • 如果找到终结点匹配项,但该终结点处于“已停止”状态,流量管理器将返回 NODATA 响应。 在这种情况下,将不在地理区域层次结构中的更高位置进一步查找。 当子配置文件处于“已停止”或“已禁用”状态时,此行为也适用于嵌套终结点类型。
  • 如果终结点显示“已禁用”状态,则不会包含在区域匹配过程中。 当终结点处于“已禁用”状态时,此行为也适用于嵌套终结点类型。
  • 如果查询来自该配置文件中没有映射的地理区域,流量管理器将返回 NODATA 响应。 因此,我们强烈建议客户将地理路由用于一个终结点,最好是嵌套类型的终结点,其子配置文件中至少有两个终结点且分配了“世界”区域。 这还可以确保处理任何不会映射到区域的 IP 地址。

流量管理器工作原理中所述,流量管理器不会直接从客户端接收 DNS 查询。 DNS 查询来自客户端配置使用的递归 DNS 服务。 因此,用于确定区域的 IP 地址不是客户端的 IP 地址,而是递归 DNS 服务的 IP 地址。 在实践中,此 IP 地址是客户端的适当代理。

后续步骤

了解如何使用流量管理器终结点监视开发高可用性应用程序

了解如何创建流量管理器配置文件