Azure云服务工作者角色的用例有哪些?

时间:2014-07-28 16:52:50

标签: asp.net azure

我是Microsoft Azure的新手,我并没有真正了解云服务中的工作者角色。 Web角色很容易掌握:它们是运行IIS的,因此我不必自己管理它,因此当我部署到Web角色时,我会部署一些在IIS中运行的东西

现在,每个人都说工人角色"它就像Windows服务,它运行在后台"我 直到今天,我从来不需要开发Windows服务,所以也许正因为如此,我没有得到工人角色的重点。

此外,我似乎有人在工作者角色上部署WebAPI应用程序,但是我会在IIS上运行WebAPI,因此它看起来更像是Web角色而非工作者角色。

无论如何,天蓝色工人角色的真实用例是什么?我们什么时候应该使用它?为什么?它的常用例子是什么?

3 个答案:

答案 0 :(得分:2)

正如@Thiago所说,有很多用途。

比如想想YouTube。你现在如何实现它...当用户观看和上传视频时,你可能会设置一个前端。

视频上传后,您需要执行一些任务。将其转换为特定格式,查找版权材料,拍摄快照......或其他任何内容。

您绝对不希望在执行此操作时阻止用户,并且您不希望让用户在您执行此操作时打开浏览器。当工作者角色发挥作用时......不需要UI,它不依赖于用户的任何内容,只需运行您需要的进程,并在视频准备就绪时通知用户。他还在吗?向他展示徽章或其他什么,他是否关闭了浏览器?给他发电子邮件。

这只是一个帮助我理解工人角色的例子......希望它也能帮到你

答案 1 :(得分:1)

工作者角色有很多用途。

您可以使用它来发送电子邮件,从天蓝色服务总线队列中取出项目并对其进行处理,您可以自行托管webapi(您不需要IIS)。您可以在表格中插入项目......

答案 2 :(得分:1)

在坚果壳中,

  • Web角色 - 如果您计划在Azure中运行IIS
  • 工作者角色 - 如果要运行不带IIS的中间层应用程序
  • VM角色 - 如果您想在Azure中执行,则超出了Web或辅助角色的范围

启动任务仅在Web或辅助角色中可用; VM角色无法管理启动任务。 这是您使用Worke角色的原因之一。

基本上,Web角色必须能够提供HTTP内容;但是,工人角色没有这种限制。

天蓝色工人角色的真实用例是什么?

  • 您可以运行启动任务,例如可以启动一个或多个Windows PowerShell脚本的控制台应用程序或批处理文件。
  • 您可以在后台安排大量维护流程,例如
    • 通过对数据库运行查询来检查孤立数据
    • 索引数据库
    • 从Web角色发送的队列中提取消息

理想情况下,您希望通过将工作项插入队列来延迟所有昂贵的事务/工作,并让它们以工作者角色执行,从而使Web角色尽可能具有响应能力。

  

此外,我似乎有人在工作者角色上部署WebAPI应用程序,但是   WebAPI是我在IIS上运行的东西,所以看起来更多   像网络角色而不是工人角色。

WebAPI可以使用不带IIS的OWIN进行自托管。如果您只想在没有文档的情况下托管WebAPI,可以通过在Worker角色中结合任务来节省资金