【问题标题】:How many roles can you have per Azure instance每个 Azure 实例可以拥有多少个角色
【发布时间】:2010-08-28 00:02:47
【问题描述】:

我知道每个实例只能有 1 个网络角色,但这是否也适用于后台角色?更详细地说,1 个实例可以运行后台角色和 Web 角色吗?

【问题讨论】:

    标签: azure azure-worker-roles azure-web-roles


    【解决方案1】:

    我认为您问题中使用的术语让其他回答者感到困惑。

    在 Windows Azure 计算中,您拥有云服务。云服务可以被认为是你的整体架构,或者至少是前端、中间层等(任何有计算而不是存储的层)。例如,您的应用程序可能有一个表示前端(ASP.Net MVC Web 应用程序)和一个中间层(基于基本 http 的 WCF 服务层)。我们将这些层级中的每一层都比作“角色”。因此,在上面的示例中,我的云服务中有 2 个 Web 角色。我也可能有一些后端处理来完成某种批处理工作,这也将是一个“角色”。响应用户交互的角色(例如网站、服务层等)被托管为“网络角色”,而那些后端服务则是“工作角色”。

    然后我们有实例。一个实例是配置了多少虚拟机来提供给定角色的功能。例如,我可能需要我的表示层有 5 个实例,因为它需要大量负载。所以,我的 1 个网络角色有 5 个实例。同样,我的中间层,一个服务层,可能只需要 3 个实例(因为表示层缓存),因此我的 1 个 Web 角色有 3 个实例。我的后端服务可能只需要 1 个实例,因为它的工作可以随时完成,但如果积压日志太大,它可以扩展到 10 个实例来完成工作,然后再次缩减到 1 个实例。

    所以这里的关键是每个角色可以有 1 个或多个实例。由于这种关系,每个实例只能有一个角色是有道理的(因为一个实例是从单个角色模板“实例化”的)。

    Rinat 上面试图说的是,您可以欺骗工作者角色并实际在 WCF 中托管一个 http 端点,从而获得 Web 角色类型的行为,但是您无法获得 Web 角色的负载平衡你来做这件事。同样,通过覆盖 WebRole.cs 中的 OnStart 方法,Web 角色可以具有辅助角色样式的行为。但是我仍然认为这只是两种情况下的一个角色,您可以拥有该角色的多个实例。

    Bjorn 表示默认情况下每个角色最多只能有 20 个实例,但是您可以获得更多实例(因此恕我直言,他不值得 -1)。

    希望这能解决问题。

    【讨论】:

    • 是的,我认为你是对的人们很困惑。我明白什么是角色,在某些情况下,每个角色 1 个实例似乎有点过头了,尤其是当最小的实例有近 2gb 的内存时。但是我和其他人回答了我的问题,谢谢!
    • 好吧,(理论上)可以在 IIS 中运行一个 webrole,并在 App Fabric 中运行一个工作角色(当然不是在端口 80/443 上)。两个角色都可以随实例扩展,但在实践中很难/不可能......
    【解决方案2】:

    每个实例只能有一个角色

    但是,您可以在您的工作角色中托管 Http 端点,从而有效地将其转变为 Web+Worker 角色。

    参考和示例:

    【讨论】:

      【解决方案3】:

      默认情况下,一个 Web 角色可以有 20 个实例。如果您需要更多信息,可以联系 Azure 服务台,他们会提供服务!

      【讨论】:

      • 谢谢 我不知道有上限。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2016-10-31
      • 1970-01-01
      相关资源
      最近更新 更多