我正在尝试将Azure上的Web应用程序从单个Web实例扩展到多个实例。 Web应用程序对每个用户状态进行了大量处理,它也具有相当的交互性,因此延迟很重要。我们目前只有一个数据库,测试表明它不是瓶颈所以对于这个问题,让我们假设我们不必担心扩展它,所有实例都会遇到同一个数据库。在这种情况下,我认为每用户负载平衡是最佳选择,因为每个请求将导致每个用户状态在许多Web实例中重复。除了保持一致性的问题外,我担心这会给最终用户带来不可接受的延迟。
此link表示ARR默认在Azure上执行每用户负载平衡。但是,当您在Azure上启动多个Web实例时,可以自动启用流量管理器,它可以根据请求进行负载平衡。
所以我的问题是,如果我在我的虚拟主机计划中添加更多实例,我会使用这两种负载均衡方案中的哪一种?如果我需要手动禁用流量管理器,那么最好的方法是什么?
答案 0 :(得分:1)
Calum - 您可以利用Azure中的标准SQL会话状态提供程序,或者您可以查看Azure Redis缓存提供程序以及用于用户会话状态的后备存储。
部署到Cloud Service Web角色时,您会自动在主机前获得负载均衡器实例。除了端点配置之外,它相对透明。每个新添加/删除的自动扩展实例都会添加到Cloud Service中,并自动添加/删除到负载均衡器。
正如其他人所说,Azure Traffic Manager提供了更高级别的服务,可以将流量引导到多个Azure区域(数据中心)甚至是本地端点。
可以在此处找到有关负载均衡的详细概述:http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/