【问题标题】:Whether to use a worker role or a web role : Windows Azure使用辅助角色还是 Web 角色:Windows Azure
【发布时间】:2010-04-09 18:34:45
【问题描述】:

我正在编写一个对 blob 文件执行大量读取操作的小型计算程序...我应该选择工作角色还是网络角色...。

【问题讨论】:

    标签: c# windows azure


    【解决方案1】:

    Web 角色和辅助角色之间的唯一区别在于,在 Web 角色中,IIS(实际上是托管 Web 核心)启动并指向您的应用数据目录。您仍然可以将代码放在 WebRole.cs 中,该代码与您在工作角色中所做的事情完全相同,因此决定应该是“您想要 IIS 吗?”如果是这样,请使用 Web 角色。如果没有,请使用辅助角色。

    【讨论】:

      【解决方案2】:

      绝对是工作角色,Web 角色顾名思义,旨在响应 Web 请求,根据 IIS 设置,Web 请求可能会在 1 分钟左右后超时。

      【讨论】:

      • +1 用于提及 为什么 一个可能不如另一个有效。
      【解决方案3】:

      如果没有更多信息,很难给出明确的答案,但乍一看,我会说是工人角色。这就像一个后端 Windows 服务,而不是在 HTTP 请求到达时响应它们。

      【讨论】:

        【解决方案4】:

        关于如何托管辅助角色的问题:这与托管 Web 角色的过程完全相同 - 只需向您的项目添加一个新角色,然后选择辅助角色而不是 Web 角色。角色只不过是“虚拟机”。当您选择“实例”的数量时,这等同于正在运行的虚拟机数量。 @smarx 的解释只是说 Web 角色(或 Web 虚拟机)有 IIS 供您使用,而辅助角色没有。

        要查看工作者角色在做什么,有两种相对常见的模式:

        • 搭建你自己的网络服务器(你的角色实际上可以在启动时启动程序,包括网络服务器之类的好东西)。在这种情况下,worker 角色会将内容返回给您的调用者,就像 Web 角色中的内容一样。只是没有 IIS 的帮助。
        • 使用队列将任务传达给您的辅助角色。在这种情况下,您的工作角色从队列中读取一些消息(您选择消息的格式)。然后它作用于它。然后它开始阅读下一条消息。示例:您创建了一个照片共享站点。您将网站设置为网络角色,并且您可以选择让用户上传照片。然后,您将其存储在数据库(或表)中,并放置一条队列消息,例如“为图片#123 创建缩略图”。 worker 角色读取此消息,从数据库中获取图片#123,并创建一些缩略图,并将其推回数据库中。该过程可能需要很长时间,但您的网站访问者甚至都不会注意到。

        如果您想观看一些精彩的入门视频,请查看Cloud Cover Show。第 3 集专门讨论了创建工作角色,@smarx 展示了如何从工作角色托管 Mongoose html 服务器。

        【讨论】:

          【解决方案5】:

          我会简单的

          • 网络角色用于托管基于 IIS 的网络应用程序。

          • 工作者角色适用于任何其他应用程序。

          两者之间唯一真正的区别是 IIS 安装在 Web 角色上,您的应用程序将部署到其中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-06-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-27
            • 2011-09-17
            • 2013-01-06
            • 1970-01-01
            相关资源
            最近更新 更多