【问题标题】:windows azure VM load balancingwindows azure 虚拟机负载均衡
【发布时间】:2011-10-22 19:14:42
【问题描述】:

尝试迁移到 Windows Azure。我们内置了一大堆自定义和分片代码,因此我们认为使用 VM 角色会是一个更好的主意——我的假设是我们可以将它作为常规服务器进行管理并将我们的应用程序部署到它上面。该数据库已经在 SQL Azure 上。

问题 - 在我们当前的非 Azure 设置中,我们有两个带有负载均衡器的 Web 服务器框。我记得读过一些关于 Web 角色以及 Azure 如何在实例(Web 或辅助角色)之间进行负载平衡的内容。 Azure 是否支持两个 VM 角色之间的负载平衡?

更重要的是,如果我们使用辅助角色(因为代码似乎与 Azure 更紧密地集成),性能会更好。如果有人能指出我正确的方向,那就太好了。非常感谢。

【问题讨论】:

    标签: azure azure-worker-roles azure-vm-role


    【解决方案1】:

    负载平衡器会在您的角色实例(无论是 Web、Worker 还是 VM)之间分配流量。最终用户(或系统)只需通过 protocol://ip:port 联系您的服务。例如,如果您在 VM 角色上托管端口 8000,并拥有该角色的 4 个实例,您将看到流量分布在所有 4 个实例中(与 Web 角色没有什么不同)。

    工作角色和虚拟机角色之间的性能应该没有任何不同。不同之处在于客户操作系统本身的维护。如果您可以使用 Worker 角色而不是 VM 角色,那么在更新方面您的生活会变得更轻松(并且无需将大型多 GB 映像推送到云中)。您需要使用 VM 角色的真正原因有 3 个:

    • 无法自动安装所需的应用程序(例如,您需要运行的任何 MSI、注册表更新等)
    • 您可以自动安装,但需要的时间太长(例如超过 5-10 分钟)
    • 您可以自动安装并及时完成安装,但这根本不是一个可靠的安装(例如,某些组件在安装过程中偶尔会失败,从而导致角色循环和重复安装尝试)

    【讨论】:

    • 感谢您的回复。仍在考虑专用服务器方式。为这个幼稚的问题道歉 - 因此,如果我们选择使用 Web 角色并将 UI 层部署在端口 80 并有四个实例(获取一个新实例并部署相同的代码),它将自动进行负载平衡。我是否以正确的方式考虑这个问题?
    • 是的,您的想法是正确的,从 3 到 4 个实例的扩展只是将您的代码推出到第 4 个实例,并且您会自动获得负载平衡。但是:需要澄清“专用服务器”的概念:所有 Azure VM 都是虚拟服务器,您需要假设在同一硬件上运行其他 VM(特别是如果您运行的内核少于 8 个)。 Web 角色是 Windows Server 2008 虚拟机,就像虚拟机角色一样,但不是预安装,而是在启动时运行安装。并且没有更多的操作系统维护。网络角色确实是要走的路。
    • @user529265 - 还有一点建议:安装平台培训工具包并完成通过 Web 角色推出网站的练习(第一个实验室和高级 Web 和辅助角色实验室)。我认为这将真正为您阐明 Web 角色。
    • 谢谢。这确实有助于正确看待事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多