Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)

简介:

Windows Azure Platform 系列文章目录

  本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充。

 

  我们知道,在Windows Azure PaaS,有一个非常重要的概念,就是Web Role和Worker Role。

  在创建Azure Cloud Service的时候,会提示如下的选项:

  

 

  -Web Role是响应客户端的HTTP请求

  -Worker Role则是在后台执行的应用程序,概念上类似于Windows Service。

  -Web Role可以通过Azure Storage中的Queue,向Worker Role发送队列消息 (Queue.AddMessage()),以便让Worker Role在后端执行自己需要的逻辑。

  

  注意:上图中Worker Role分为三类。本章会介绍PaaS Worker Role。

 

  有关Cache Worker Role的详细信息,请参考:

      Windows Azure Cloud Service (42) 使用Azure In-Role Cache缓存(1)Co-located Role

      Windows Azure Cloud Service (43) 使用Azure In-Role Cache缓存(2)Dedicated Role

 

  有关Worker Role with Service Bus Queue,请参考:

  Windows Azure Service Bus (2) 队列(Queue)入门

      Windows Azure Service Bus (3) 队列(Queue) 使用VS2013开发Service Bus Queue

  

 

  为什么微软要有Web Role/Worker Role?它的好处在哪里?在这里我举个例子您就能明白,比如我们有一个信息管理系统,需要上传Excel文档来进行解析和处理,从软件设计的角度来说有2种方法来解决

  (1)在ASP.NET应用程序里新建个upload control,在upload control里面写函数:一旦Excel文件上传完毕,则在.cs文件执行对于Excel的处理工作。

  但这样会有一个缺点,如果Excel文件里包含的内容非常大的话,需要时间来处理这些内容,所以前台的ASP.NET的页面会停滞或者无响应。虽然我们也可以通过增加progressbar或者loading图片来增强用户的体验,但是从软件设计上来说不是最好的。

  (2)前端还是用原来的处理方式,使用upload control。服务器端增加一个Windows Service,时序的查询某一个文件夹,一旦发现前端页面上传了一个Excel文件,则Windows Service执行处理Excel的工作。这样前端的页面会及时的响应并且得到更好的用户体验。

  但是这还是有一个缺陷,前端的页面和windows service是一对一的关系,如果附件上传的数量很大的话会出现Windows Service来不及处理的情况。

  (3)有了Worker Role,我们可以让一个ASP.NET页面后端有多个Worker Role来进行分布式的计算,是一对多的关系,能够有效的利用云上的计算资源,Worker Role可以处理高负载的数据访问。

 

 

  这样的架构好处有两点:

  1.异步处理,Web Role只响应客户端的HTTP请求,进行快速的响应。而Worker Role在后端处理Web Role发送过来的消息(Queue),两者是松耦合的。

  在传统的Web应用中,如果我们把复杂的处理逻辑写在ASPX页面,则ASPX页面可能会停滞,造成的用户体验不好。Windows Azure PaaS使用Web Role和Worker Role,Web Role只关注于响应客户端的HTTP请求;而Worker Role可以在后端处理业务逻辑,进行异步处理。

 

  2.Web Role和Worker Role的关系是多对多的,比如我可以在Web Role的配置中,设置Instance count为10。如下图:

  

  在Worker Role的配置中,设置Instance count为3

  

 

  这种架构就好比一个餐厅,里面有10个服务员(Web Role)和3个厨师(Worker Role)。

-          服务员(Web Role)只负责招待客人(响应客户端请求),并将客人的点菜信息通过队列消息交给厨房(Queue.AddMessage())

-          厨师(Worker Role)读取点菜信息(Queue.GetMessage),随后负责烧菜做饭(进行后端逻辑),当饭菜准备完毕后,则删除点菜信息。

-          如果前端压力过大(客户端请求过多),则Web Role可以横向扩展

-          如果后端压力过大(后端逻辑处理过多),则Worker Role也可以横向扩展

-          这种松耦合,多对多的关系非常适合企业级应用架构

  

  可以看到,Web Role和Worker Role的进行通信的重要途径是通过Queue,了解Queue对于Azure PaaS架构设计非常重要。

 

 

 

 


本文转自Lei Zhang的博客博客园博客,原文链接:http://www.cnblogs.com/threestone/p/3410510.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
71 32
|
1月前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
44 11
|
4月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
4月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
1月前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
87 3
|
1月前
|
存储 安全 网络安全
Windows Server 本地安全策略
由于广泛使用及历史上存在的漏洞,Windows服务器成为黑客和恶意行为者的主要攻击目标。这些系统通常存储敏感数据并支持关键服务,因此组织需优先缓解风险,保障业务的完整性和连续性。常见的威胁包括勒索软件、拒绝服务攻击、内部威胁、恶意软件感染等。本地安全策略是Windows操作系统中用于管理计算机本地安全性设置的工具,主要包括用户账户策略、安全选项、安全设置等。实施强大的安全措施,如定期补丁更新、网络分段、入侵检测系统、数据加密等,对于加固Windows服务器至关重要。
|
2月前
|
边缘计算 安全 网络安全