代码之家  ›  专栏  ›  技术社区  ›  Jerod Venema

windowsazure如何执行负载平衡?

  •  20
  • Jerod Venema  · 技术社区  · 15 年前

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

    那么,现在的问题是,Azure究竟如何执行负载平衡呢?

    5 回复  |  直到 15 年前
        1
  •  15
  •   Andy Britcliffe    14 年前

    好的,在这里给一个正确的答案-蓝色

        2
  •  7
  •   Community CDub    7 年前

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

    对于传统asp.net应用程序的会话状态之类的内容,会话数据将存储在表存储中,然后所有webrole实例都可以使用表存储。提到这一点 here .

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

        3
  •  7
  •   knightpfhor    10 年前

    虽然负载平衡过去是循环的,但是微软已经改变了他们进行负载平衡的方式,如本博客所述:

    http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

    Microsoft Azure负载平衡器使用5元组(源IP、源端口、目标IP、目标端口、协议类型)来计算用于将流量映射到可用服务器的哈希

        4
  •  3
  •   Rob    10 年前

    我意识到这是一个老问题,但我们通过使用WindowsWebFarm框架并创建一层代理服务器来解决亲和性问题,这些代理服务器支持到Web服务器的亲和性。

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

    这是推荐的架构,如果你是自托管,似乎同样适用于Azure。这些层看起来像这样。。。

    防火墙:Azure负载平衡器(代理服务器循环)

    代理:应用程序请求路由(ARR),通过与web服务器的关联、静态和动态压缩以及SSL来执行负载平衡。将SSL卸载到代理服务器可以为web服务器提供额外的处理器时间。此外,Web场框架非常适合扩展,因为它可以管理每个额外的Web服务器、复制应用程序文件、监视运行状况、在线/离线切换等。您可以使用它管理10000多个Web服务器。

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

    数据库:普通数据库服务器或Azure SQL。

    Microsoft建议您至少有两个ARR(代理)服务器。有些人会呆呆地看着Azure的额外成本。然而,我们发现,如果5Mbit的速度足够的话,微实例($15pm)更适合作为代理服务器。

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

    注意:WFF文档中关于ARR、代理和控制器的术语有些混乱。它们通常都是一样的东西。如果你想设置它,请记住这一点。

        5
  •  1
  •   Mike    15 年前

    我想你可能在找 Windows Azure AppFabric PDC sessions 更多信息。