我正在创建一个多区域 AlwaysOn Sql 可用性组。我在东部有 2 个 VM,在西部有 1 个 VM。我需要使用面向公众的负载平衡器对这些负载进行负载平衡。是否可以使用存在于不同 VNET 和不同数据中心中的 VM 创建面向 Internet 的负载均衡器?
两个网络之间有一条 VPN 隧道。这与公共负载均衡器无关,但以防万一有人问。
3 年后更新:
你永远不应该真正创造这样的东西。如果你绝对这样做,你可以,但这是可怕的可怕做法。
我正在创建一个多区域 AlwaysOn Sql 可用性组。我在东部有 2 个 VM,在西部有 1 个 VM。我需要使用面向公众的负载平衡器对这些负载进行负载平衡。是否可以使用存在于不同 VNET 和不同数据中心中的 VM 创建面向 Internet 的负载均衡器?
两个网络之间有一条 VPN 隧道。这与公共负载均衡器无关,但以防万一有人问。
3 年后更新:
你永远不应该真正创造这样的东西。如果你绝对这样做,你可以,但这是可怕的可怕做法。
Azure 流量管理器应该能够跨区域执行您需要的操作。https://azure.microsoft.com/en-us/documentation/articles/traffic-manager-overview/
因此,我开发了解决方案并成功测试了它。有两种选择:
确保您在这两个地区都有 VNET。确保位于不同区域的两个 VNET 之间存在 VPN 隧道。接下来像往常一样创建集群和可用性组。然后在您的两个区域中附加单独的面向 Internet 的负载均衡器。因此,如果您在东部有 2 个节点,在西部有 1 个节点,那么面向互联网的东部负载均衡器后面将有 2 个虚拟机,而西部则有一个不同的负载均衡器,只有一个。然后,在您的集群上为您的公共 IP 地址创建侦听器。确保您的面向 Internet 的负载均衡器的公共 IP 地址与侦听器上的正确子网相关联,否则您将遇到问题。这是您的选择发挥作用的地方
选项 1:在您的连接字符串中指定故障转移合作伙伴示例
DataSource=mydb.mydomain.com;FailoverPartner=mydb2.mydomain.com;MultiSubnetFailover=true;
我可能打错了这种联系,但这就是想法。您可以查找正确的语法
选项 2:不要指定故障转移伙伴,如果发生区域故障转移,请使用新的连接字符串重新部署您的应用程序。(如果你没有使用像 octopus deploy 这样的工具,这是云人员,你做错了)
我选择了选项 2,因为我们的灾难恢复故障转移方法已经非常复杂。
我希望这可以帮助别人!