【问题标题】:What is default Windows Azure Hosted Services behavior?什么是默认的 Windows Azure 托管服务行为?
【发布时间】:2012-06-18 08:17:39
【问题描述】:

将 Web 角色部署到 Windows Azure 云时,负载平衡方面的默认行为是什么?有吗?

我提出问题的原因是,我们有流量管理器,您可以在其中指定负载平衡、故障转移和循环。但是,如果我不启用此功能,那么 Azure 如何在幕后工作?

关于 SLA 的默认建议始终是至少两个实例;但这两个实例服务请求还是只有一个?因此,默认行为是故障转移?

提前感谢您对此事的任何澄清,因为我在 Google 上没有找到它。

【问题讨论】:

    标签: azure cloud load-balancing failover round-robin


    【解决方案1】:

    @astaykov 几乎涵盖了它。由于有关流量管理器和 100% SLA 的评论,我想对此进行扩展。

    我从未听说过提供 100% SLA 的托管服务提供商。这意味着什么都没有出错了:软件崩溃、操作系统更新、操作系统崩溃、硬件崩溃、网络中断、电源中断、DNS 中断...... 某事某些时候会导致服务器(或虚拟机)在一段时间内不可用。

    Windows Azure 为云服务、存储、SQL 数据库、SQL 报告、服务总线、访问控制、缓存和 CDN 提供服务级别协议 (SLA)(请参阅所有 SLA 详细信息here)。对于这个问题,云服务 SLA 是相关的,提供 99.95% 的可用性。

    有时,给定的角色实例将不可用。你几乎可以向自己保证这一点。存在操作系统映像升级(客户操作系统和主机操作系统)、硬件故障等问题。此问题并非特定于 Windows Azure;任何云或托管服务都会出现这些类型的中断。

    为了提高正常运行时间的可用性,应部署多个实例。然后将实例拆分到故障域,这意味着它们位于不同的硬件、不同的机架上,并且是隔离的,因此如果网络段或电源连接发生故障(想象一下服务器机架的网络面板短路) out),只有一部分实例受到影响。负载均衡器将继续将流量分配给健康的实例(尽管容量会减少,直到替换实例上线)。

    到流量管理器:这是一种跨地理区域分配流量的方法,用于故障转移或性能。在前一种情况下,您将在单独的数据中心中运行服务,这为您的应用程序提供了良好的“高可用性”故事(想象主数据中心由于某种原因离线)。在后一种情况下,当您的业务遍及全球时,您可以为客户提供更好的性能。

    【讨论】:

    • 嗨大卫,谢谢你的回答。我不知道您在哪里提出 100% SLA,但让我澄清一下为什么我在 @astaykov 评论中询问轮询不能 100% 保证。这与 SLA 无关,而是与实例的机制有关;我的意思是 - 如果它不是 100% 的循环,那么它是什么? 90% 的时间循环,5% 的一个实例,3% 的负载平衡,2% 的故障转移?我知道这可能看起来很挑衅 - 它不是 - 我只是想了解省略流量管理器参数时的机制。顺便提一句;感谢您对 TM 的清晰解释 :-)
    • @MichaelMortensen,如果你看一下“dunnry”对我的回答的评论,你会自己找到答案——它是无粘性循环法,尊重 HTTP Keep Alive。所以它是什么 - 它是一个循环,但一些(保持活动)请求最终可能会遇到一个相同的实例。我认为它完全涵盖了您的问题和疑虑。
    • @astaykov 我同意 - 我已将您的答案标记为答案。像你一样,我只是担心这不是官方文档的一部分。干杯,伙计 - 再次感谢。希望其他人也能从 Q/A 中受益。
    【解决方案2】:

    默认应该是循环,但并不总是100%保证。

    可以肯定的是,它不是故障转移负载平衡。这个想法是所有实例的负载均等,但不能始终 100% 保证。

    更新

    世界上没有任何事情是 100% 保证的 :) 甚至计算实例的 SLA 也是 99.95% 而不是 100%。流量管理器与多实例部署无关。流量管理器仅在您跨地理区域进行部署时才会发生。

    自从 2008 年第一个公共 CTP 以来,我一直在使用、探索、调整、开发、移植到 Windows Azure。我不记得我从哪里获得所有信息,但计算负载平衡器应使用循环或类似的算法(并且绝对不是故障转移)将负载分散到您的实例中。更重要的是,如果我可以这么说,它是“无粘性的”。这意味着不能保证来自一个用户的请求会在下一次调用中命中同一个实例。

    Windows Azure 上的一些资源(旧的和新的):

    http://www.davidchappell.com/writing/white_papers/introducing_windows_azure_v1-chappell.pdf

    http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-timeout-details.aspx

    另外,值得一提的是,在最新版本中,还有针对单实例角色的 SLA:http://www.windowsazure.com/en-us/support/legal/sla/

    此外,我们将监控您的所有个人角色实例 并保证 99.9% 的时间我们会检测到一个角色 实例的进程未运行并启动纠正措施。

    【讨论】:

    • 当您说不能 100% 保证时,您的这句话是什么意思?这是因为微软希望我们使用流量管理器还是平台中的一些技术问题?任何材料都值得赞赏。能问一下你哪里有资料吗?谢谢。
    • 您好 astaykov,如果您觉得我在质疑您的知识,我很抱歉 - 我只是好奇为什么这些信息如此难以获得。一年多前我开始使用 Azure,我很高兴。当然,没有什么是 100% 保证的——我只是想知道你的“应该”评论——就是这样。感谢您提供的时间和深度;非常感谢您。已投票。
    • “应该”,因为我不能 100% 确定。至于很难找到 - 你是对的,你的特定问题的答案确实很难在公开可用的信息中找到。我的回答是基于我的经验、知识以及与系统和社区(其他专家)的互动
    • 这里仅供参考 - 虽然负载均衡器是循环的,但它也尊重 HTTP 保持活动 (1.1)。因此,同一个浏览器很有可能会访问负载均衡器后面的同一个实例。您不应该期望在请求之间可靠地看到完全相同的浏览器反弹实例。这对某些人来说可能是显而易见的,但人们经常想知道为什么他们在单个浏览器上进行测试时总是点击实例 0。
    • @dunnry 感谢您的澄清!我仍然认为这应该是官方文档的一部分。
    猜你喜欢
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多