2010-02-14 89 views
19

我正在尝试阅读关于Windows Azure中的负载均衡的知识,并且关于它的所有信息都非常含糊且非特定。我真正想要的只是一个简单的答案:Azure如何执行负载平衡?Windows Azure如何执行负载平衡?

许多应用程序使用会话或内存数据来提高性能。对于Azure,我不确定这是否可行,因为(从我所知道的情况来看),Azure没有任何“粘性”会话。即使它不是基于会话的,也只是基于IP的平衡,这对于许多应用程序来说已经足够了。

那么,今天的问题 - Azure如何执行其负载平衡?

+0

2014年晚些时候......以防万一其他人登陆: http://windowsitpro.com/azure/azure-load-balancer-stickiness-options – Dawesi 2015-05-16 01:27:04

回答

15

好的,在这里给出一个正确的答案 - Azure DOES支持web和worker角色前面的负载平衡(所以在这个线程上标记为最好的答案是完全错误的),但它不支持Affinity负载平衡这就是jvenema所要求的我想的。当前的实现使用循环法行为。

+1

好的澄清Andy;我很感激。我最初应该在问题上更清楚。 – jvenema 2010-11-11 15:26:06

+0

您正在访问:-) – 2010-11-11 19:51:42

+0

如果只有一个调用基于Azure的服务的客户端应用程序,该怎么办?这种流量会不会被路由到一个特定的网络角色? – 2011-09-03 17:40:54

1

我想你可能在寻找Windows Azure AppFabric和Velocity,具体来说。请参阅PDC sessions以了解更多信息。

+1

我读过关于AppFabric的文章 - 这是我们进入“它负载平衡的地方,但我们不会告诉你如何“妈妈。 – jvenema 2010-02-14 22:16:48

+0

尽管AppFabric缓存是撰写此答案时推荐的解决方案,但现在已被弃用,MS现在推荐使用托管的Redis缓存http://blogs.msdn.com/b/appfabric/archive/2015/04/ 02/windows-server-appfabric-1-1-ends-support-4-2-2016.aspx – knightpfhor 2015-09-13 21:53:32

7

Azure通过在您设置的实例之间分配流量来处理表存储和SQL Azure的负载平衡。

对于类似于传统asp.net应用程序的会话状态,会话数据将存储在表存储器中,然后可用于所有webrole实例。这提到了here

Windows Azure为每个公共端点提供负载均衡,允许您将应用程序扩展到任意多个实例。您需要确保您的应用程序是无状态的(或将实例的状态存储在跨实例的公共区域中,例如斑点或表)。唯一没有负载平衡的端点是内部端点。因此,如果您正在进行某种类型的角色间通信,例如从Web角色到在内部端点上托管wcf服务的多个工作角色实例之一,则需要处理这些实例之间的负载平衡。

3

我意识到这是一个老问题,但我们通过使用Windows Web Farm Framework并创建支持Affinity的代理服务器层到我们的Web服务器来解决Affinity问题。

http://technet.microsoft.com/en-us/library/jj129385.aspx

这是建议,如果你是自托管,似乎同样适用于Azure的架构。该层是这个样子......

防火墙:Azure的负载均衡(循环赛到代理服务器)

代理:应用程序请求路由(ARR)来执行负载均衡的亲和力对web服务器,静态和动态压缩和SSL。将SSL卸载到代理服务器可为Web服务器提供额外的处理器时间。此外,Web Farm Framework可以扩展,因为它可以管理每个额外的Web服务器,复制应用程序文件,监视运行状况,在线/离线切换等。您可以拥有10,000多台Web服务器。

Web:普通Web服务器(不需要SSL,压缩等)。

数据库:正常的数据库服务器或Azure SQL。

微软建议您至少有两台ARR(代理服务器)服务器。有些人会对Azure的额外成本感兴趣。然而,我们发现微型实例(15美元)比代理服务器更适合,如果5兆位是足够的速度。

另一种替代方法是将两台ARR服务器配置为小实例($ 100pm,即$ 65pm),但关闭一台ARR服务器并且仅在高峰期或第一台服务器出现故障时启用它(例如,可能安排第二台ARR服务器当第一次运行Windows更新并在一小时后停止时启动)。

这是一个麻烦设置,但一旦它的工作,它非常光滑!

注意:WFF文档中存在关于术语ARR,代理和控制器的一些混淆。他们通常都是一样的东西。记住这一点,如果你尝试设置它。

+0

好概要格兰特! – jvenema 2013-06-30 18:26:16