Azure 流量管理器支持六种流量路由方法,用于确定如何将网络流量路由到服务终结点,帮助优化流量流并提高应用程序可用性。 每个流量管理器配置文件将一个路由方法应用于 DNS 查询:优先级、加权、性能、地理、多值或子网。 路由方法确定 DNS 响应中要返回的终结点。
流量管理器中提供了以下流量路由方法:
- 优先级: 如果要对所有流量使用主服务终结点,请选择 优先级 路由。 如果主终结点或其中一个备份终结点不可用,则可以提供多个备份终结点。
- 加权:当你希望根据权重在一组终结点之间分配流量时,选择“加权”路由。 请将权重设置为相同,以均匀分布于所有终结点。
- 性能: 如果具有不同地理位置的终结点,并且希望用户使用最接近的终结点来降低网络延迟,请选择 性能 路由。
- 地理: 根据 DNS 查询的地理位置选择 地理 路由,将用户定向到特定终结点(Azure、外部或嵌套)。 此路由方法可帮助你遵守数据主权授权、内容本地化和用户体验等方案,以及测量来自不同区域的流量。
- 多值:对于仅能将 IPv4/IPv6 地址作为终结点的流量管理器配置文件,选择“多值”路由。 当此配置文件收到查询时,它将返回所有正常的端点。
- 子网: 选择 子网 流量路由方法,将用户 IP 地址范围集映射到特定终结点。 当 Traffic Manager 收到请求时,它将返回映射到该请求的源 IP 地址的端点。
所有流量管理器配置文件包括运行状况监视和终结点的自动故障转移。 有关详细信息,请参阅流量管理器终结点监视。 在流量管理器配置文件中,一次只能配置一个流量路由方法。 可以随时为配置文件选择其他流量路由方法。 更改将在一分钟内应用,无需停机。 可使用嵌套的流量管理器配置文件来组合使用多种流量路由方法。 嵌套配置文件可实现复杂的流量路由配置,以满足更大和复杂应用程序的需求。 有关详细信息,请参阅嵌套式流量管理器配置文件。
优先级流量路由方法
如果主服务发生故障,组织通常希望通过部署一个或多个备份服务来为其服务提供可靠性。 优先级流量路由方法允许 Azure 客户轻松实现此故障转移模式。
流量管理器配置文件包含服务终结点的优先顺序列表。 默认情况下,流量管理器将所有流量发送到主终结点(优先级最高)。 如果主终结点不可用,流量管理器会将流量路由到第二个终结点。 如果主终结点和次终结点都不可用,则流量将转到第三终结点,依此类推。 终结点的可用性取决于配置的状态(已启用或已禁用)和正在进行的终结点监视。
配置终结点
使用 Azure 资源管理器,可以使用每个终结点的优先级属性显式配置终结点优先级。 此属性是一个介于 1 和 1000 之间的值。 值越小,表示优先级越高。 终结点不能共享优先级值。 该属性的设置是可选的。 省略此属性时,流量管理器会根据终结点顺序使用默认优先级。
加权流量路由方法
加权流量路由方法允许均匀分配流量或使用预定义的加权。
在“加权”流量路由方法中,需要为流量管理器配置文件中的每个终结点分配一个权重。 该权重是从 1 到 1000 的整数。 此参数是可选的。 如果省略,流量管理器使用默认权重为 1。 权重越高,优先级就越高。
对于收到的每个 DNS 查询,流量管理器会随机选择一个可用终结点。 选择哪个终结点取决于分配到所有可用终结点的权重。 对所有终结点使用相同的权重会导致均匀分布流量。 对特定的终结点使用较高或较低的权重会导致这些终结点在 DNS 响应中的返回次数较多或较少。
加权方法可以实现一些有用的方案:
- 逐步升级应用程序: 分配一定百分比的流量以路由到新终结点,并逐渐将流量增加到 100%。
- 应用程序迁移到 Azure: 使用 Azure 终结点和外部终结点创建配置文件。 调整终结点的权重,优先选择新终结点。
- 云弹性扩展以获取更多容量: 通过利用流量管理器策略进行管理,快速将本地部署扩展到云中。 当需要在云中获得额外的容量时,可以添加或启用更多终结点,并指定哪部分流量将流向每个终结点。
可以使用 Azure 门户、Azure PowerShell、CLI 和 REST API 配置权重。
客户端和客户端用来解析 DNS 名称的递归 DNS 服务器缓存 DNS 响应。 此缓存可能会影响加权流量分布。 如果客户端和递归 DNS 服务器的数目较大,流量分布将按预期工作。 但是,如果客户端或递归 DNS 服务器的数目较小,缓存可能会严重影响流量分布。
常见用例包括:
- 开发和测试环境
- 应用程序间通信
- 针对的是共享常见递归 DNS 基础结构的窄用户群的应用程序(例如,公司通过代理连接的员工)
这些 DNS 缓存影响常见于所有基于 DNS 的流量路由系统,不只存在于 Azure 流量管理器上。 在某些情况下,显式清除 DNS 缓存可能会提供解决方法。 如果这不起作用,则替代流量路由方法可能更合适。
性能流量路由方法
在国家或地区的两个或更多位置部署终结点可以提高应用程序的响应能力。 使用性能流量路由方法,可以将流量路由到离你最近的位置。
最近的终结点不一定按地理距离最接近。 相反,性能流量路由方法通过测量网络延迟来确定最近的终结点。 流量管理器维护一份 Internet 延迟表,用于跟踪 IP 地址范围与每个 Azure 数据中心之间的往返时间。
流量管理器在 Internet 延迟表中查找传入 DNS 请求的源 IP 地址。 然后,流量管理器在 Azure 数据中心中选择一个可用终结点,该终结点的 IP 地址范围延迟最低,并在 DNS 响应中返回该终结点。
如流量管理器工作原理中所述,流量管理器不会直接从客户端接收 DNS 查询。 相反,DNS 查询来自客户端使用的递归 DNS 服务。 流量管理器使用递归 DNS 服务的 IP 地址来确定最近的终结点,而不是客户端的 IP 地址。 此 IP 地址充当客户端的良好代理。
流量管理器定期更新 Internet 延迟表,以考虑国家 Internet 和新 Azure 区域的更改。 但是,由于 Internet 上的负载会实时变化,应用程序性能也会随之变化。 性能流量路由不会监视给定服务终结点上的负载。 如果终结点不可用,流量管理器不会将其包含在 DNS 查询响应中。
需要注意的要点:
- 如果配置文件包含同一 Azure 区域中的多个终结点,流量管理器会在该区域中的可用终结点之间均匀分布流量。 如果想要在某个区域中采用不同的流量分布,可以使用嵌套式流量管理器配置文件。
- 如果最靠近的 Azure 区域中的所有已启用终结点已降级,流量管理器会将流量转移到下一个最靠近的 Azure 区域中的终结点。 如果想要定义首选故障转移顺序,请使用嵌套式流量管理器配置文件。
- 对外部终结点或嵌套式终结点使用“性能”流量路由方法时,需要指定这些终结点的位置。 请选择离部署最近的 Azure 区域。 这些位置是 Internet 延迟表支持的值。
- 选择终结点的算法是确定性的。 同一个客户端重复发出的 DNS 查询会定向到同一个终结点。 通常,客户端在旅行时使用不同的递归 DNS 服务器,因此客户端可能会路由到不同的终结点。 对 Internet 延迟表的更新会影响路由。 性能流量路由方法不保证客户端始终路由到同一终结点。
- 当 Internet 延迟表发生更改时,你可能会注意到某些客户端被定向到其他终结点。 这种路由更改基于当前延迟数据,因此更加精确。 进行这些更新很重要,可以确保在 Internet 持续发展的情况下“性能”流量路由的准确性。
地理流量路由方法
可将流量管理器配置文件配置为使用地理路由方法,以便根据 DNS 查询的地理位置将用户定向到特定终结点(Azure、外部或嵌套)。 此路由方法可帮助你遵守数据主权授权、内容和用户体验的本地化以及测量来自不同区域的流量。
为地理路由分配配置文件时,与该配置文件关联的每个终结点都需要有一组分配给它的地理区域。 地理区域可以处于以下粒度级别:
世界 - 任何区域
区域分组 - 例如非洲、中东、澳大利亚/太平洋
国家/地区 - 例如爱尔兰、秘鲁和香港特别行政区的中华人民共和国
州/省 - 例如美国-加利福尼亚州、澳大利亚-昆士兰州、Canada-Alberta(此粒度级别仅支持澳大利亚、加拿大和美国的州/省)
将区域或一组区域分配给终结点时,流量管理器会将来自这些区域的任何请求仅路由到该终结点。 流量管理器通过 DNS 查询的源 IP 地址来确定用户查询所在的区域,通常是为用户查询的本地 DNS 解析程序的 IP 地址。
流量管理器读取 DNS 查询的源 IP 地址,并确定它源自哪个地理区域。 然后,它会查看某个终结点是否已经将此地理区域映射到自身。 此查找从最低粒度级别(支持的国家/省,然后为国家/地区级别)开始,并达到最高级别,即 World。 流量管理器选择使用此遍历找到的第一个匹配项作为要在查询响应中返回的终结点。 当查询与嵌套类型终结点匹配时,流量管理器会基于其路由方法返回该子配置文件中的终结点。 以下几点适用于此行为:
当路由类型是“地理路由”时,只能将一个地理区域映射到流量管理器配置文件中的一个终结点。 此限制确保用户的路由是确定性的,并且客户可以启用需要明确地理边界的方案。
如果用户的区域在两个不同的终结点的地理映射下列出,流量管理器会选择粒度最低的终结点,并且不考虑将请求从该区域路由到其他终结点。 例如,请考虑具有两个终结点的地理路由类型配置文件:Endpoint1 和 Endpoint2。 终结点 1 配置为接收来自爱尔兰的流量,终结点 2 配置为接收来自欧洲的流量。 如果请求源自爱尔兰,则请求始终路由到 Endpoint1。
由于一个区域只能映射到一个终结点,因此流量管理器不管该终结点是否处于正常状态都将返回响应。
重要
强烈建议使用地理路由方法的客户将其与嵌套类型终结点相关联,这些终结点包含每个终结点中至少有两个终结点的子配置文件。
如果流量管理器找到终结点匹配项,并且该终结点处于 “已停止 ”状态,流量管理器将返回 NODATA 响应。 在这种情况下,流量管理器不会在地理区域层次结构中进行更高层级的查找。 当子配置文件处于 已停止 或 已禁用 状态时,此行为也适用于嵌套终结点类型。
如果终结点显示 “已禁用 ”状态,流量管理器不会将其包含在区域匹配过程中。 当终结点处于 禁用 状态时,此行为也适用于嵌套终结点类型。
如果查询来自该配置文件中没有映射的地理区域,流量管理器将返回 NODATA 响应。 强烈建议您使用地理路由并搭配一个终结点,理想情况下该终结点属于嵌套类型,并在子配置文件中至少包含两个终结点,并且将区域World分配给此设置。 此配置还可确保流量管理器处理不映射到区域的任何 IP 地址。
如流量管理器工作原理中所述,流量管理器不会直接从客户端接收 DNS 查询。 DNS 查询来自客户端使用的递归 DNS 服务。 流量管理器使用递归 DNS 服务的 IP 地址来确定区域,而不是客户端的 IP 地址。 此 IP 地址充当客户端的良好代理。
FAQs
多值流量路由方法
多值流量路由方法允许你在单个 DNS 查询响应中获得多个正常运行的终结点。 此配置使调用方能够在返回的终结点无响应时与其他终结点执行客户端重试。 此模式可以提高服务可用性,并降低与新 DNS 查询获取正常运行的终结点相关的延迟。 仅当所有终结点都属于 External 类型,并且你将其指定为 IPv4 或 IPv6 地址时,MultiValue 路由方法才有效。 当此资料收到查询时,流量管理器将返回所有健康的终结点,但受可配置的最大返回数量的限制。
FAQs
子网流量路由方法
子网流量路由方法允许将一组用户 IP 地址范围映射到配置文件中的特定终结点。 如果流量管理器收到该配置文件的 DNS 查询,它将检查该请求的源 IP 地址,确定哪个终结点映射到该终结点,并在查询响应中返回该终结点。 在大多数情况下,源 IP 地址是调用方使用的 DNS 解析程序。
可以指定要映射到终结点的 IP 地址作为 CIDR 范围(例如 1.2.3.0/24)或地址范围(例如 1.2.3.4-5.6.7.8)。 与终结点关联的 IP 范围在该配置文件中必须唯一。 地址范围不能与同一配置文件中不同终结点的 IP 地址集重叠。
如果定义一个没有地址范围的终结点,它将作为备用,并从任何剩余子网获取流量。 如果未包含回退终结点,则流量管理器会针对任何未定义的范围发送 NODATA 响应。 强烈建议定义回退终结点,以确保在终结点之间指定所有可能的 IP 范围。
子网路由可以用来为从特定 IP 空间进行连接的用户提供不同的体验。 例如,可以将所有请求从公司办公室路由到其他终结点。 如果尝试测试应用的仅限内部版本,则此路由方法特别有用。 另一种情况是,如果要为从特定 ISP 连接的用户提供不同的体验(例如,阻止来自给定 ISP 的用户)。
FAQs
后续步骤
了解如何使用流量管理器终结点监视开发高可用性应用程序