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了。如下图:

  

时间: 2024-11-11 03:05:14

Windows Azure Service Bus (2) 队列(Queue)入门的相关文章

Windows Azure Service Bus (4) Service Bus Queue和Storage Queue的区别

<Windows Azure Platform 系列文章目录> 熟悉笔者文章的读者都了解,Azure提供两种不同方式的Queue消息队列: 1.Azure Storage Queue 具体可以参考:       Windows Azure Cloud Service (12) PaaS之Web Role, Worker Role, Azure Storage Queue(下) Azure Storage Queue提供基础的消息队列服务,例如AddMessage, DeleteMessage.

Windows Azure Service Bus (4) 主题(Topic) 使用VS2013开发Service Bus Topic

<Windows Azure Platform 系列文章目录> 在笔者之前的文章中Windows Azure Service Bus (1) 基础 介绍了Service Bus支持主题(Topic).如下图: 当2个客户端同时订阅了相同的主题(Topic).当向这个Topic发送消息的时候,2个客户端会同时收到该消息. 笔者模拟一个在线聊天室的场景: 1.创建一个Windows Console命令行项目,编写相应的代码 2.运行项目,要求输入聊天室名称(即订阅了相同的主题Topic) 3.当2

Windows Azure Service Bus (6) 中继(Relay On) 使用VS2013开发Service Bus Relay On

<Windows Azure Platform 系列文章目录> 注意:本文介绍的是国内由世纪互联运维的Windows Azure服务. 项目文件请在这里下载. 我们在使用Azure平台的时候,经常会遇到本地应用和云端应用进行互通互连的情况. 在这种混合云的场景下,我们可以通过以下方式解决: 一.Point-To-Site VPN 将本地的一台设备(Point),与云端的网络(Site)进行互通互联. - 这里的Point指的就是企业内网的一台主机(VPN客户端) - 这里的Site是指Azur

Windows Azure Service Bus (1) 基础

<Windows Azure Platform 系列文章目录> 我们在基于Windows Azure进行云端开发的时候,云端的软件通常都需要与其他软件进行交互.这些其他软件可能包括其他Internet上的软件,或者内网的软件. 对于内网的软件来说,Azure提供Site-to-Site(S2S) VPN 和Point-to-Site(P2S) VPN的方式来打通Azure和内网应用程序之间的VPN连接.但是如果内网的应用程序使用了网络地址转换(NAT),S2S和P2S是无法支持在NAT背后的V

Windows Azure Service Bus Notification Hub推送通知

之前写的一篇关于消息推送的博文:) http://www.cnblogs.com/developersupport/p/Azure-Service-Bus-Notification-Hub.html

阿里云ONS而微软Azure Service Bus体系结构和功能比较

阿里云ONS而微软Azure Service bus体系结构和功能比较 版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping.谢谢! 阿里云的开放消息服务: 一.如图所看到的,ProducerID1 的producer 实例有三个,可能是部署在三个机器上的三个进程,也可能是一台机 器上的三个进程. 每一个实例都会发送TopicA 的消息.同理,ProducerID2 与之类似. 二.ConsumerID1 有三个实例,假设是集群消费方式,那么每一个实例消

Configure Dynamics 365 and Azure Service Bus Integration (using OneWay relay and listener)

Continuing our previous post https://nishantrana.me/2017/03/22/configure-dynamics-365-and-azure-service-bus-integration-through-queue-and-queueclient/ Here we'd add a new Shared Access Policy in the Azure Service Bus. We can copy the connection strin

Configure Dynamics 365 and Azure Service Bus Integration (using TwoWay relay, Azure Aware Plugin and listener)

Let us pick up from where we left in the previous post and implement two way relaying through which we can get the response back from the listener. https://nishantrana.me/2017/03/22/configure-dynamics-365-and-azure-service-bus-integration-using-onewa

阿里云ONS和微软Azure Service Bus的架构和特性比较

阿里云ONS和微软Azure Service bus的架构和特性比较 版权所有,转载请注明出处http://blog.csdn.net/yangzhenping,谢谢! 阿里云的开放消息服务: 一.如图所示,ProducerID1 的producer 实例有三个,可能是部署在三个机器上的三个进程,也可能是一台机 器上的三个进程.每个实例都会发送TopicA 的消息.同理,ProducerID2 与之类似. 二.ConsumerID1 有三个实例,如果是集群消费方式,那么每个实例消费TopicA