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

问题描述 投票:4回答:5

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

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

azure azure-web-sites azure-traffic-manager
5个回答
3
投票

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

看看“让所有东西多余”下的Azure架构中心,你会看到一个recommendation for Traffic Manager

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


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缓存,尽管有关其大小的报告差别很大。


2
投票

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

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

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

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


0
投票

我也同意dornadigital提供的细节。

前端应用程序也有考虑因素。浏览器对维持持久连接的持续时间都有不同的阈值。例如,Chromium目前保持连接,除非有300秒的不活动。

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

我希望能让您了解如何在Web应用程序中构建冗余。


0
投票

我不同意Jonathan,因为他对流量管理器服务的弹性的理解与微软自己关于这个主题的文档不一致。

配置Azure流量管理器时,可以选择要在其中部署服务的区域。我(正确地)推断这是为了断言如果所述区域失败,流量管理器服务也可能受到影响,反过来,您的应用程序解决方案将无法正确地故障转移到次要区域。

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

包含Traffic Manager的冗余。 Traffic Manager是一个可能的失败点。查看流量管理器SLA,并确定单独使用流量管理器是否满足高可用性的业务要求。如果没有,请考虑添加另一个流量管理解决方案作为故障恢复。如果Azure Traffic Manager服务失败,请将DNS中的CNAME记录更改为指向其他流量管理服务。

Azure Application Architecture Guide - Make all things redundant

我的想法和意图是不在主服务区域内部署Traffic Manager,而是将其部署到辅助(故障转移区域)和第三(第3)区域作为备份。

© www.soinside.com 2019 - 2024. All rights reserved.