我正在研究使用 PaaSApp Service
和 DBaaSSQL Database
产品在 Azure 中创建高可用性 Web 应用程序的方法。
Standard
数据库包括Standard Geo-Replication
自动将数据库复制到预配对的 Azure 区域。当我创建数据库并设置地理复制时,它要求我创建一个新服务器以及一个新数据库。这意味着每个服务器都有自己的 DNS 名称(例如mySqlServer.database.windows.net
vs mySqlServerFailover.database.windows.net
)。
我希望App Service
使用一个 DNS 名称,该名称会自动指向任何可用的数据库。最好是,该 DNS 名称也可以进行地理复制,以确保即使整个数据中心发生故障,我的网站仍可在无人干预的情况下使用。我希望web.config
在数据库故障转移时不必更改文件中的设置。
有其他选择吗?或者我是否需要有人随时准备在故障转移期间切换站点?
答案1
对于您网站的 DNS 名称,Azure 流量管理器是让 Azure 在数据中心发生故障时自动故障转移到第二个位置所需要的。您可以将流量管理器配置为在主动/主动配置中的区域之间进行负载平衡,或在主动/被动配置中进行故障转移
使用数据库 URL 会变得有点棘手,因为您无法在区域之间实现内部负载平衡。您实际上可以在第二个数据中心中拥有指向 DR DB 的第二个应用服务,然后使用流量管理器在两个 Web 应用之间实现平衡。在故障转移中,流量管理器将流量引导至 DR 位置,并且应用程序配置为与 DR DB 通信。