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

 《Windows Azure Platform 系列文章目录

 

  Service Bus 队列(Queue)

  Service Bus的Queue非常适合分布式应用。当使用Service Bus Queue的时候,分布式应用的组件不直接进行通信。

  -  前端应用(发送方)创建一个Azure Service Bus Queue,插入需要处理的消息主体,然后继续处理前端业务逻辑

  -  后端消息处理(接收方)从Service Bus Queue中取出消息,并进行处理

  -  发送方不需要等待接收方的答复,以便在前端处理和发送更多的消息

  -  Azure Service Bus Queue是First In First Out的,最先添加的消息主体,最先被处理。并且Service Bus Queue是会被多个接收方处理的,类似于竞争模式。但是同一时刻,一条消息主体只会被一个接收方处理,保证不会被多个接收方重复处理。

  这就好比是笔者进餐馆吃饭,服务员(代表笔者作为发送方)帮助笔者点菜,厨师(代表接收方)在厨房烧菜。假设这家餐馆有ABC三个厨师,笔者点的菜就会被ABC三个厨师进行竞争处理,最先点的菜最先被处理(FIFO),且同一个菜只会由一个厨师制作,不会被两个或者多个厨师同时制作。

 

  Service Bus Queue 架构图:

  

  Service Bus Queue是一种通用的技术,可以用于各种各样的情景:

  1. 在一个多层(Multi-Tier) Azure应用程序的Web Role和Service Bus Worker Role之前的通信
  2. Azure公网应用程序和企业内网应用程序互相通信的混合云的解决方案
  3. 企业内网中不同组织或者部门的分布式应用程序之前的互相通信

  使用Service Bus Queue可以让你更好的扩展你的应用程序,并使架构更灵活。

 

  接下来,笔者将介绍使用Azure Management Portal和Visual Studio 2013来创建和使用Azure Service Bus Queue。

  本次Demo需要准备的前提条件:

  1. Windows Azure Global 账号 (www.windowsazure.com)
  2. Visual Studio 2013
  3. Windows Azure SDK (笔者使用的是.NET SDK For VS2013)

  

  1.首先我们需要登陆Azure Management Portal (http://manage.windowsazure.com)

  2.点击New -> App Service -> Service Bus ->Queue -> Custom Create。设置Service Bus的名称和命名空间。如下图:

  

  然后配置Azure Service Bus,如下图:

  

  上图中,可以按照需要设置Azure Service Bus Queue的Max Size等信息,笔者暂时使用默认设置。

  

  3.创建完毕后,我们可以通过显示栏的Connection Information来查看Service Bus的访问密钥,如下图:

  

  密钥显示如下:

  

  以上完成了Service Bus NameSpace的设置。

 

  4.然后我们以管理员身份打开VS2013。点击工具栏的View -> Server Explorer。 

  在Server Explorer中,展开Windows Azure -> Service Bus,然后右键,点击Add New Connection

  

  在下图中,勾选Use connection string,然后复制我们在步骤三中的访问密钥连接字符串:

  

  

 

  5.设置完毕后,我们展开Service Bus -> leizhangservicebus-ns -> Queues,然后点击Queue,右键,Create New Queue。如下图:

  在弹出的窗口中,设置Name为LeiZhangServiceBusQueue。

  然后展开Queues的内容,可以查看到我们创建成功的Azure Service Bus Queue。

  

  阶段性总结:

  步骤1-3,实现了创建Azure Service Bus Namespace的工作

  步骤4-5,实现了创建Azure Service Bus Queue的工作

 

  接下来,我们要测试通过Visual Studio 2013,向Service Bus Queue,发送和接受消息。

  1.我们点击上图中创建成功的Service Bus Queue,点击右键Send a test message,进行发送消息的测试,如下图:

  

  2.会弹出窗口,证明发送测试消息成功。如下图:

  

  3.重复步骤1的Send a test message三次。

  4.回到Azure Management Portal,点击leizhangservicebus-ns,可以查看到Queue Length为3,是因为在步骤3中,我们Send a test message执行了三次。如下图:

  

  5.接下来,我们执行接收消息的步骤。我们右键点击"Receive Message"

  

  6.点击Receive Message之后,会显示接受消息的结果。

  可以看到,下周中Id为1,即第一条消息。说明了Service Bus Queue是First-In-First-Out的,且Label的时间4:32:36 PM和步骤2的时间一致,也说明了是接受到了第一条消息。如下图:

  

  7.重复步骤5的Receive Message,直至将所有的Azure Service Bus Message取出。

  8.然后我们回到Azure Management Portal,可以看到Queue Length又变成0了,因为笔者通过VS2013将Service Bus Queue的消息都Receive了。如下图:

  

分类:  Azure Service Bus

本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/3968442.html,如需转载请自行联系原作者
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/381954

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。