【问题标题】:Azure Worker Role or Web App?Azure 辅助角色还是 Web 应用?
【发布时间】:2016-01-12 17:19:07
【问题描述】:

问题背景:(简化,但想法相同)一个可扩展的 Web 服务,将两个数字相加并返回结果。没有状态被保存。客户端发送一个 HTTP POST,其中要添加的 2 个数字是正文的一部分。服务器将数字相加并在 HTTP 响应正文中以总和进行响应。

问题:我想在 Azure 上部署服务。 我应该创建一个网络角色还是一个工作者角色?对于上述问题,哪个会更有效?

我尝试使用 worker-role 创建原型,并且有些部分(例如在 http-post 中处理 application/xml mime 类型)在 worker 角色中似乎很难做到。 GlobalConfiguration 类之类的东西默认不可用。

【问题讨论】:

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


    【解决方案1】:

    根据 Web 服务的实施情况,典型的优先级是仅在必要时承担基础架构中某一层的责任。例如。 Apps Services 为您提供最少的责任,但如果您在 ASP.NET、node.js、php 等中实现 web 服务,它是一个不错的选择。 Web Roles 让您可以更好地控制 IIS 部分,并且仍然支持 ASP.NET、php 等。辅助角色通常用于 Web 服务的 OWIN 实现 - 即您不依赖 IIS。

    /米克尔

    【讨论】:

    • 感谢您的帮助米克尔。您对云服务很了解。它们甚至没有在 ARM 门户中完全定制。我决定使用带有 ASP.Net 5 的 Web API。
    【解决方案2】:

    问题:我想在 Azure 上部署服务。我应该创建一个 网络角色还是工人角色?哪个对 上述问题?

    Web RoleWorker Role 之间,答案是Web Role。原因是 IIS 预装在 Web 角色中,而您需要在工作角色中安装 IIS(或其他一些 Web 服务器)才能处理 HTTP 请求。工作角色更适合执行不需要用户交互的后台任务(将它们视为在本地计算机上运行的服务)。

    在性能方面,我相信它们都将是相同的,因为在这两种情况下,您将获得相同的虚拟机。

    话虽如此,在托管您的网络服务方面,您还有其他选择。您可以使用Web Apps,它提供了一个非常简单的部署模型(与云服务相比)。如果您的应用程序仅作为 API,您可以仅使用 Azure API Apps。另一种选择是使用Azure API Management Service。在决定使用云服务(Web/Worker 角色)之前,您可能还想查看这些服务。

    【讨论】:

    • 谢谢高拉夫。这有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2014-08-29
    • 2011-09-17
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多