流量管理器的工作原理
使用 Azure 流量管理器可以控制流量在应用程序终结点之间的分布。 终结点可以是托管在 Azure 内部或外部的任何面向 Internet 的服务。
流量管理器具有两大优势:
- 根据某个流量路由方法对流量进行分布
- 连续监视终结点运行状况,在终结点发生故障时自动进行故障转移
当客户端尝试连接到某个服务时,必须先将该服务的 DNS 名称解析成 IP 地址。 然后,客户端就可以连接到该 IP 地址以访问相关服务。
需要了解的最重要一点是流量管理器在 DNS 级别工作,即在应用层(第 7 层)工作。 流量管理器根据流量路由方法的规则,使用 DNS 将客户端导向到特定的服务终结点。 客户端直接连接到选定的终结点。 流量管理器不是代理或网关。 流量管理器看不到流量在客户端与服务之间传递。
流量管理器使用配置文件来控制云服务或网站终结点的流量。 有关配置文件的详细信息,请参阅管理 Azure 流量管理器配置文件。
流量管理器示例
Contoso Corp 开发了一个新的合作伙伴门户。 此门户的 URL 为 https://partners.contoso.com/login.aspx
。 该应用程序托管在三个 Azure 区域中。 为了改善可用性并在全球最大程度地提高性能,他们使用流量管理器将客户端流量分布到最靠近的可用终结点。
为了实现此配置,他们完成以下步骤:
部署服务的三个实例。 这些部署的 DNS 名称为“contoso-east.chinacloudapp.cn”、“contoso-north.chinacloudapp.cn”和“contoso-east2.chinacloudapp.cn”。
创建一个名为“contoso.trafficmanager.cn”的流量管理器配置文件,并将该文件配置为对三个终结点使用“性能”流量路由方法。
使用 DNS CNAME 记录将其虚构域名“partners.contoso.com”配置为指向“contoso.trafficmanager.cn”。
重要
只有一个 Azure [租户 ID] 可以拥有给定的根流量管理器 DNS 名称。 尝试使用已在使用的名称将会显示一个错误。 在以下示例中,根 DNS 名称为 contoso。 此外,如果配置文件是使用点分隔的名称(例如 partners.contoso.trafficmanager.cn)创建的,则会自动保留 contoso.trafficmanager.cn。
客户端如何使用流量管理器进行连接
沿用前面的示例,当客户端请求页面 https://partners.contoso.com/login.aspx
时,会执行以下步骤来解析 DNS 名称并建立连接:
客户端向已配置的递归 DNS 服务发送 DNS 查询,以解析名称“partners.contoso.com”。 递归 DNS 服务有时称为“本地 DNS”服务,并不直接托管 DNS 域。 客户端将联系各种权威 DNS 服务的工作负荷转移到 Internet,以便解析 DNS 名称。
为了解析 DNS 名称,递归 DNS 服务将查找“contoso.com”域的名称服务器。 然后,它会联系这些名称服务器以请求“partners.contoso.com”DNS 记录。 contoso.com DNS 服务器返回指向 contoso.trafficmanager.cn 的 CNAME 记录。
接下来,递归 DNS 服务查找“trafficmanager.cn”域的名称服务器,这些服务器由 Azure 流量管理器服务提供。 然后,针对“contoso.trafficmanager.cn”DNS 记录发出的请求发送到这些 DNS 服务器。
流量管理器名称服务器接收该请求。 终结点的选择依据为:
- 每个终结点的已配置状态(不返回已禁用的终结点)
- 每个终结点的当前运行状况,可通过流量管理器运行状况检查来确定。 有关详细信息,请参阅流量管理器终结点监视。
- 所选的流量路由方法。 有关详细信息,请参阅流量管理器路由方法。
选择的终结点以另一个 DNS CNAME 记录的形式返回。 在本例中,假设返回了 contoso-north.chinacloudapp.cn。
接下来,递归 DNS 服务将查找“chinacloudapp.cn”域的名称服务器。 它会联系这些名称服务器以请求“contoso-north.chinacloudapp.cn”DNS 记录。 返回的 DNS“A”记录包含位于中国北部的服务终结点的 IP 地址。
递归 DNS 服务将结果合并,向客户端返回单个 DNS 响应。
客户端接收 DNS 结果,并连接到给定的 IP 地址。 客户端直接连接到应用程序服务终结点,而不是通过流量管理器连接。 由于这是一个 HTTPS 终结点,客户端将执行必要的 SSL/TLS 握手,然后针对“/login.aspx”页面发出 HTTP GET 请求。
流量管理器和 DNS 缓存
递归 DNS 服务缓存它所收到的 DNS 响应。 客户端设备上的 DNS 解析程序也会缓存结果。 通过缓存可以加快后续 DNS 查询的响应速度,因为使用的是缓存中的数据,不需要查询其他名称服务器。 缓存的持续时间取决于每个 DNS 记录的“生存时间”(TTL) 属性。 该属性值越小,缓存过期时间就越短,因此访问流量管理器名称服务器所需的往返次数就越多。 如果指定较大的值,则意味着从故障终结点定向流量需要更长的时间。 使用流量管理器,可以将流量管理器 DNS 响应中使用的 TTL 配置为最短 0 秒,最长 2,147,483,647 秒(符合 RFC-1035 的最大范围),从而可选择使应用程序的需求实现最佳平衡的值。
常见问题解答
后续步骤
详细了解流量管理器终结点监视和自动故障转移。
详细了解流量管理器流量路由方法。