版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/25164827
《Windows Azure队列与服务总线队列的比较》
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
在微软Azure云平台上,有两种队列实现,一种是Windows Azure Queue,另一种是Service Bus Queue。
一、介绍
微软的Windows Azure支持两种类型的队列机制:一是Windows Azure队列,二是服务总线队列。
Windows Azure队列:是Windows Azure存储基础设施的一部分,提供了简单的基于REST的Get、Put、Peek接口,提供了服务之间的可靠、支持持久化的消息通信。服务总线队列:是Windows Azure消息通信基础设施Broader的一部分,支持诸如发布/订阅、远程Web服务这样的队列,以及集成模式。
Windows Azure队列最先上线,作为专注于Windows Azure存储服务的队列存储机制。而服务总线队列是服务总线的最后一个版本引入的,专注于中间人消息通信机制,其目的在于应用程序之间的集成或者是应用组件间的多种通信协议、数据交换契约、可信域等。
二、应用场景
两者相比较,各自的应用场景如下所述。
Windows Azure队列更适合以下的场景:
1)应用程序在队列上需要存储超过5GB的消息,且消息的保存时间在7天以内;
2)服务器端需要对所有队列执行的事务处理做日志记录的场景;
3)当应用程序需要灵活的租赁来处理消息的场景。
而Azure服务总线队列更适合以下场景:
1)当应用程序需要完整的基础.NET WCF的场景;
2)当需要发布或消费消息批处理的场景;
3)当应用程序处理的消息尺寸在64KB~256KB之间的场景;
4)当应用程序需要“至少交付一次”的交付保证,且不需要额外的基础设施组件的场景;
5)当应用程序需要FIFO交付的场景;
6)当队列尺寸不超过5GB的场景;
7)当队列需要基于角色的访问控制的场景;
8)当应用程序需要自动重复检测的场景;
9)当应用程序在发送消息到队列或从队列接收多种消息时需要原子性保证和事务性的行为的场景;
10)当应用程序指定的工作负载需要超过7天的生存期的场景。