使用工作角色还是Web角色:Windows Azure

10

我正在编写一个小型计算程序,需要对Blob文件进行大量读取操作... 我应该选择Worker角色还是Web角色...

5个回答

13

Web角色和Worker角色之间唯一的区别在于,在Web角色中,IIS(实际上是Hosted Web Core)会启动并指向您的应用程序数据目录。您仍然可以将代码放在WebRole.cs中,执行与Worker角色完全相同的操作,因此决策应该是“您是否需要IIS?” 如果是这样,请使用Web角色。如果不需要,请使用Worker角色。


5

Web角色明显是一个工作角色,正如其名称所示,旨在响应Web请求。根据IIS设置,Web请求可能会在1分钟左右超时。


+1 是因为其中一个可能不如另一个有效。 - Nate

2

没有更多信息很难给出确定的答案,但是乍一看我会说是一个工作角色。这就像一个后端Windows服务,而不是在HTTP请求到达时回答请求的东西。


2
关于您如何托管工作角色的问题:它与托管Web角色的过程完全相同 - 只需向项目添加一个新角色,并选择Worker Role而不是Web Role。角色只是“虚拟机器”。当您选择“实例”数量时,这相当于运行多少个虚拟机器。@smarx所解释的只是说Web角色(或Web虚拟机)可以使用IIS,而工作角色则不能。
要查看工作角色正在执行什么操作,有两种相对常见的模式:
将以下文本翻译成中文:
  • 搭建自己的Web服务器(您的角色实际上可以在启动时启动程序,包括像Web服务器这样的好东西)。在这种情况下,工作角色将向您的调用者返回内容,就像Web角色中的某个内容一样。只是没有IIS帮忙。
  • 使用队列与您的工作角色通信任务。在这种情况下,您的工作角色从队列中读取一些消息(您选择消息的格式)。然后它会采取行动。然后它去读下一条消息。例如:您创建了一个照片共享网站。您在Web角色上放置了一个网站,并为用户上传照片提供了一个选项。然后您将其存储在数据库(或表)中,并放置一个队列消息,如“为图片#123创建缩略图”。工作角色读取此消息,从数据库中获取图片#123,并创建一些缩略图,然后将其推回到数据库中。该过程可能需要很长时间,但您的网站访问者甚至不会注意到。
如果你想看一些很棒的入门视频,请查看Cloud Cover Show。第3集专门讲解如何创建工作角色,@smarx展示了如何从工作角色中托管Mongoose HTML服务器。

0

我来简单解释一下

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

  • Worker 角色 用于任何其他应用程序。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接