Azure云服务工作者角色的用例是什么?



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

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

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

无论如何,azure worker角色的实际用例是什么?我们什么时候应该使用它,为什么?它的常用用法有哪些?

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

以YouTube为例。你现在会怎么实施呢?当用户观看和上传视频时,你可能会设置一个前端。

一旦视频上传,你需要在上面执行一些任务。将其转换为特定格式,查找版权材料,拍摄快照……不管是什么

你肯定不希望在你这样做的时候阻止用户,你也不希望在你这样做的时候让用户打开浏览器。这就是工人角色发挥作用的时候。不需要UI,它不依赖于用户的任何东西,你只需要在那里运行你需要的进程,并在视频准备好时通知用户。他还在吗?给他看个徽章什么的,他关闭浏览器了吗?给他发封电子邮件。

这只是一个帮助我理解工人角色的例子…希望它对你也有帮助

工人角色有很多用途。

你可以用它来发送电子邮件,从azure服务总线队列中取出队列项目并处理它,你可以自托管一个webapi(你不需要IIS)。

简而言之,

  • Web角色-如果您计划在Azure中运行IIS
  • Worker Role -如果你想在没有IIS的情况下运行中间层应用
  • VM角色—如果您想在Azure中执行的操作超出了Web或Worker角色的范围

Startup任务只在Web或Worker角色中可用;虚拟机角色不能管理启动任务。这是您使用work角色的原因之一。

基本上,web角色必须能够提供HTTP内容;但是,在worker角色中没有这样的限制。

azure worker角色的实际用例是什么?

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

理想情况下,您希望web角色尽可能响应,通过将工作项插入队列来延迟所有昂贵的事务/工作,并让它们在worker角色中执行。

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

WebAPI可以在没有IIS的情况下使用OWIN自托管。如果你只想托管WebAPI本身而不需要文档,你可以通过在Worker角色中组合任务来节省资金。

相关内容

最新更新