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是一种通用的技术,可以用于各种各样的情景:
- 在一个多层(Multi-Tier) Azure应用程序的Web Role和Service Bus Worker Role之前的通信
- Azure公网应用程序和企业内网应用程序互相通信的混合云的解决方案
- 企业内网中不同组织或者部门的分布式应用程序之前的互相通信
使用Service Bus Queue可以让你更好的扩展你的应用程序,并使架构更灵活。
接下来,笔者将介绍使用Azure Management Portal和Visual Studio 2013来创建和使用Azure Service Bus Queue。
本次Demo需要准备的前提条件:
- Windows Azure Global 账号 (www.windowsazure.com)
- Visual Studio 2013
- 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了。如下图:

Windows Azure Service Bus (2) 队列(Queue)入门的更多相关文章
- Windows Azure Service Bus (3) 队列(Queue) 使用VS2013开发Service Bus Queue
<Windows Azure Platform 系列文章目录> 在之前的Azure Service Bus中,我们已经介绍了Service Bus 队列(Queue)的基本概念. 在本章中 ...
- Windows Azure Service Bus (4) Service Bus Queue和Storage Queue的区别
<Windows Azure Platform 系列文章目录> 熟悉笔者文章的读者都了解,Azure提供两种不同方式的Queue消息队列: 1.Azure Storage Queue 具体 ...
- Windows Azure Service Bus Topics实现系统松散耦合
前言 Windows Azure中的服务总线(Service Bus)提供了多种功能, 包括队列(Queue), 主题(Topic),中继(Relay),和通知中心(Notification Hub) ...
- Windows Azure Service Bus Notification Hub推送通知
前言 随着Windows Azure 在中国的正式落地,相信越来越多的人会体验到Windows Azure带来的强大和便利.在上一篇文章中, 我们介绍了如何利用Windows Azure中的Servi ...
- Windows Azure Service Bus (5) 主题(Topic) 使用VS2013开发Service Bus Topic
<Windows Azure Platform 系列文章目录> 项目文件,请在这里下载 在笔者之前的文章中Windows Azure Service Bus (1) 基础 介绍了Servi ...
- Azure Service Bus(一)入门简介
一,引言 今天开始学习新的内容 Azure Service Bus(服务总线),其实也叫 "云消息服务",和 RabbitMQ,KafKa的一样都是作为消息通信服务,但是它们直接还 ...
- Windows Azure Service Bus (6) 中继(Relay On) 使用VS2013开发Service Bus Relay On
<Windows Azure Platform 系列文章目录> 注意:本文介绍的是国内由世纪互联运维的Windows Azure服务. 项目文件请在这里下载. 我们在使用Azure平台的时 ...
- Windows Azure Service Bus (1) 基础
<Windows Azure Platform 系列文章目录> 我们在基于Windows Azure进行云端开发的时候,云端的软件通常都需要与其他软件进行交互.这些其他软件可能包括其他In ...
- Windows Azure Service Bus 推动财务服务门户的高可用性和可伸缩性
抵押贷款公司和评估管理公司面临着快速.复杂且数据量极大的业务流程.他们需要可快速.轻松设置且容量几乎无限的可伸缩的企业级服务,来对处理评估订单以及自动化流程本身所产生的所有文档和数据进行管理. 这听起 ...
随机推荐
- 用php创建mysql数据库
接触php就等于向后台更近了一步,之前一直在做前端,不过也在学php,但一直没敢写博客,现在终于有勇气迈向了这一步,还请各位博友多多担待. 服务器是后台开发的必备工具,但对于一般初学者来说是没有自己的 ...
- centos 6.5 X64 安装 mongodb 2.6.1 (笔记 实测)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 *** Centos编译安装mongodb 2.6 系统最好是64位的,才 ...
- WPF快速入门系列(7)——深入解析WPF模板
一.引言 模板从字面意思理解是“具有一定规格的样板".在现实生活中,砖块都是方方正正的,那是因为制作砖块的模板是方方正正的,如果我们使模板为圆形的话,则制作出来的砖块就是圆形的,此时我们并不 ...
- 【腾讯Bugly干货分享】QQ电话适配iOS10 Callkit框架
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58009392302e4725036142fc Dev Club 是一个交流移动 ...
- Win10 UWP应用发布流程
简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...
- 推荐书籍 -《移动App测试的22条军规》
在今天的博文中,博主希望给大家分享一本博主同事黄勇的最新利作:<移动App测试的22条军规>.黄勇是ThoughtWorks资深敏捷QA和咨询师.对于我来说,和黄勇在一起的工作的这个项目, ...
- 用WPF实现查找结果高亮显示
概述 我们经常会遇到这样的需求:到数据库里查找一些关键字,把带这些关键字的记录返回显示在客户端上.但如果仅仅是单纯地把文本显示出来,那很不直观,用户不能很轻易地看到他们想找的内容,所以通常我们还要做到 ...
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...
- 【面试必备】javascript操作DOM元素
前言 时间过的真快,不知不觉就到年底了.问问自己,这一年你对自己的工作满意吗? 评价标准是什么呢?当然是马云的那两条准则了:钱给到了吗?干的爽吗?如果答案都是no,那么,你准备好跳槽了吗? 为了应对年 ...
- 图文详解Unity3D中Material的Tiling和Offset是怎么回事
图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔 ...