Azure流量管理器是否可靠进行故障转移?我应该担心的其他问题是什么?

时间:2017-11-09 21:00:50

标签: azure azure-web-sites azure-traffic-manager

我计划使用Azure流量管理器将在一个Azure区域上运行的应用程序故障转移到Azure区域。 如果这是进行故障转移的正确方法,我需要一些建议吗?我们已经看到Azure的问题,一个地区的大多数服务都会停机几个小时。虽然我知道Azure流量管理器与该地区无关。但是,虽然我的后端Web应用程序可以访问,但Azure流量管理器是否可能出现故障或流量管理器端点无法访问?

如果我打算使用Azure流量管理器,我应该担心的其他问题是什么?

5 个答案:

答案 0 :(得分:4)

我已经和TM合作了一段时间,所以这里有一些我以前没见过的问题:

如果您的服务允许Keep-Alive,只要连接保持打开状态,您的DNS条目就会忽略。我已经看到了一些奇怪的行为结果,包括用户因为继续使用连接而被困在备用页面上,导致它无限期地保持打开状态。如果您有权访问IIS管理器you can force Keep-Alive to be false

  • 浏览器DNS缓存

大多数浏览器都有自己的DNS缓存,很少有荣誉DNS Time To Live。根据我的经验,Chrome非常敏感,如果你需要快速翻转,IE和Edge会有significant delays。我听说Opera特别糟糕。

  • 其他DNS缓存

即使您没有通过浏览器访问您的服务,其他组件也可以拥有DNS缓存,而其中一些将允许您自己管理缓存。理论上,这甚至可以依赖于ISP的DNS缓存,尽管有关其大小的报告差别很大。

答案 1 :(得分:3)

Traffic Manager在DNS级别工作,DNS级别本身也在复制。但是,即便如此,您仍应在解决方案中建立冗余。

在“让所有事情变得多余”下查看Azure架构中心,您会看到recommendation for Traffic Manager

  

考虑添加另一个流量管理解决方案作为故障恢复。如果   Azure Traffic Manager服务失败,请更改您的CNAME记录   DNS指向其他流量管理服务。

答案 2 :(得分:2)

Traffic Manager内部体系结构可以抵御任何单个Azure区域的故障。因此,即使某个地区出现故障,交通管理员也应该保持警惕。这适用于所有Traffic Manager组件:控制平面,端点监视和DNS名称服务器。

由于Traffic Manager在DNS级别工作,因此它没有代表您的流量的“端点” - 它使用DNS将客户端定向到适当的端点,然后客户端直接连接到这些端点。因此,无法访问的端点是应用程序问题,而不是流量管理器问题。

也就是说,如果Traffic Manager DNS名称服务器关闭,则会出现严重问题。您的DNS解析路径将失败,您的客户将受到影响。唯一的解决方案是接受风险(小,但永远不能为零)或制定计划以使用其他DNS系统,无论是并行还是故障转移。这不是流量管理器的限制;你可以对任何基于DNS的流量管理系统说同样的话。

DornaDigital的早期答案非常好(除了第一点建议DNS缓存将通过名称服务器中断保护您 - 它不会)。它涵盖了一些重要的观点。简而言之,基于DNS的故障转移适用于新会话。现有客户可能必须刷新甚至关闭浏览器并重新连接。

答案 3 :(得分:0)

我也同意dornadigital提供的详细信息。

对于前端应用程序也有一些注意事项。浏览器对保持持久连接的时间有不同的阈值。例如,Chromium当前会保持连接,除非300秒内没有任何活动。

在我们的Web应用程序中,我们通过对端点的一定数量的失败请求来检测故障转移。请求开始失败后,我们将请求暂停301秒,以允许重新设置连接。这允许将来自流量管理器的DNS更改应用于后续请求。我们弹出一个小吃店,向用户表明我们遇到了问题,并在请求恢复时显示倒计时。与Gmail连接服务器时出现问题时类似。

我希望能给您一个有关如何在Web应用程序中构建冗余的想法。

答案 4 :(得分:0)

我不同意乔纳森(Jonathan)的观点,因为他对流量管理器服务的弹性的理解与微软自己在该主题上的文档不符。

设置Azure Traffic Manager时,选择要在其中部署服务的区域。我(正确)推断出此断言是:如果所述区域发生故障,Traffic Manager服务也可能会受到影响,进而,您的应用程序解决方案将无法正确故障转移到辅助区域。

根据Microsoft的Azure应用程序体系结构指南,在“使所有事物都变得多余”下,客户应将Traffic Manager部署到多个区域中:

  

包括流量管理器的冗余。交通管理器可能是故障点。查看流量管理器SLA,并确定单独使用流量管理器是否满足您的业务要求以实现高可用性。如果不是,请考虑添加其他流量管理解决方案作为故障回复。如果Azure Traffic Manager服务失败,请更改DNS中的CNAME记录以指向其他流量管理服务。

Azure Application Architecture Guide - Make all things redundant

我的想法和意图是不将流量管理器部署在主要服务区域中,而是将其部署到辅助(故障转移区域)和第三(第三)区域中作为备份。