我们使用Azure流量管理器使用默认设置部署了我们的高可用性解决方案。
我们选择的路由方法是Performance。
我们预计,只要主服务器关闭,用户就会转移到辅助服务器。但不幸的是有30秒的延迟。对于我们测试中的30秒,我们发现用户没有响应问题且请求超时。在工作中取回一切都需要将近一分钟。 Azure Traffic Manager with 30 second TTL 一般来说,我们不会在Facebook或Microsoft网站上观察到这些辍学,这些网站肯定会保留高可用性的解决方案。
我们是否需要在我们的应用程序中编写代码来优雅地处理这些丢失,比如在客户端显示我们将很快回来的对话框等?什么是最好的解决方案,以便用户体验无缝。
答案 0 :(得分:3)
由于Azure Traffic Manager是基于DNS的负载均衡器,因此客户端必须等待DNS条目上的TTL在重新查询DNS之前通过。这就是你遇到问题的原因。流量管理器本身不管理通信,客户端将通过DNS与哪个服务器进行通信
Facebook和微软正在更深层次的协议上使用负载均衡器(比如在IP地址上进行平衡),因此只要一个节点退出,负载均衡器就可以切换到另一个节点,因为它正在接收和重定向所有流量。
如果您可以切换到可以解决问题的Azure负载均衡器(不确定名称)。否则你必须缩短你的TTL或代码以刷新你的DNS缓存并重试。
答案 1 :(得分:0)
Azure负载均衡器或应用程序网关的问题在于它们不能跨数据中心而不仅仅是Azure流量管理器,因此Web应用程序必须自行管理错误,然后在一段时间后刷新(以确保TTL是已过期)重定向到新服务器。 https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-overview