【IT168 技术】Queue 是消息队列,Windows Azure Storage提供了云端的队列——Windows Azure Queue,它为异步工作提供分派消息服务。我们可以用Queue Storage来进行进程间的相互通信(包括运行在不同机器上的进程之间的通信)。一个使用Queue Storage经典的场景是,在一个Web应用程序中,用户通过表单递交给服务器数据,服务器收到数据后将进行处理,而这一处理将花费很多时间。这种情况下,服务器端通过Queue Storage可以把用户递交的信息存储在队列中,后台再运行一个程序从队列中取得数据进行信息的处理。
不管是在Windows或者非Windows环境下,我们都可以使用Windows Storage Queue的REST API来处理消息队列。对.NET开发人员来说, Windows Azure SDK中提供了Microsoft.WindowsAzure.StorageClient类来帮助发送REST请求。
在本文中,我们介绍Windows Storage Queue的架构、应用场景,并通过官方文档中提供的一个图片压缩的案例介绍来对如何使用Windows Storage Queue有一个大致的了解。
Windows Storage Queue的架构
对Windows Storage Queue的架构的介绍,我们还是分成两个层面来介绍,一部分通过应用程序架构来介绍;一部分通过数据对象架构来介绍,下面我们分别来介绍这两部分。
(1) Windows Storage Queue应用程序架构
Windows Storage Queue应用程序架构如图1所示:
图1 Windows Storage Queue应用架构
由图1我们可以看到,Windows Storage Queue的最上层是Queue REST API,在API的直接下层是Windows Azure Storage存储账号,在这里我们可以看到存储账号用HTTP/HTTPS所表达的地址。在每个存储服务账号下,就包含了Windows Storage Queue,这里Queue的地址实际上是服务账号的地址再加上“Queue Name,队列名称”来表示的。在队列里包含的自然就是“Messages 消息”了,消息的地址就是队列的地址再加上“/messages”。
在编写应用程序的过程中,我们可以使用Windows Azure Storage Client Queue API,这个API的MSDN地址是:
http://msdn.microsoft.com/en-us/library/dd179363.aspx
在这个API中,我们可以对Queue列表、创建队列、消息入队、获取消息、删除消息、设置队列元数据、获取队列元数据、删除队列等操作接口,这些接口主要分成2类,一部分是对Queue的操作,一部分是对Message的操作。它们的命名空间是:
Microsoft.WindowsAzure.StorageClient
在这个命名空间下,队列主要的类图如图2所示:
图2 Queue的类图