是否可以使用流量管理器来管理与内部 Azure 服务(存储、服务总线等)的连接。
目标是拥有多个存储帐户和队列,以便如果一个出现故障,另一个应用程序仍然可以工作。
我知道可以构建我的应用程序以便它自动执行此操作。但我可以使用流量管理器来实现这一点吗?
答案1
我可以使用流量管理器来实现这一点吗?
不,我们不能以这种方式运行流量管理器。
流量管理器在 DNS 级别工作,它使用 DNS 响应将最终用户流量引导到全球分布的端点。然后,客户端直接连接到这些端点。并且流量管理器仅支持面向互联网的应用程序。 有关流量管理器的更多信息,请参阅关联。
答案2
更新(2017 年 6 月 22 日)
由于服务可能需要您的“租户”后缀 mytenant.servicebus.windows.net 才能工作,因此您可能无法将其与流量管理器一起使用,并且 SAS 令牌特定于命名空间。
流量管理器只需要一个能够以状态代码 200 OK 回复 GET 请求的端点,即可成功探测端点。您的服务总线可以在 HTTP/HTTPS 上的根路径上以 200 OK 成功响应 GET 请求。
您可以使用 Azure PowerShell 和 wget 进行测试
电源外壳:
Invoke-WebRequest 'https://<yourservicebusname>.servicebus.windows.net' -MaximumRedirection 0 -ErrorAction SilentlyContinue | Select-Object StatusCode,StatusDescription
Wget:
wget -S https://<yourservicebusname>.servicebus.windows.net
您可以在此处查看如何使用流量管理器配置您的端点。 https://stackoverflow.com/questions/43790439/why-cant-azure-traffic-manager-be-used-with-service-bus
但正如 Jason We 所解释的那样,请记住 Traffic Manager 仅在 DNS 级别工作。
它刚刚在 Traffic Manager 上发布了一项新功能,该功能使用 TCP 探测而不是 HTTP(s),因此您也可以使用它来配置服务总线/存储端点。
您可以使用以下 PowerShell 命令测试 TCP 探测是否成功
tnc <storageaccountname>.queue.core.windows.net -Port 80
tnc <storageaccountname>.blob.core.windows.net -Port 80
tnc <storageaccountname>.file.core.windows.net -Port 80
tnc <storageaccountname>.table.core.windows.net -Port 80
在 Linux 上:
nc -zv <storageaccountname>.queue.core.windows.net 80
您可以在这里找到有关 TCP 探测配置的更多信息:https://azure.microsoft.com/en-us/updates/aztmfftcp/