3

我刚刚开始使用 Windows Azure 服务总线(主题和队列),我正在尝试实现竞争消费者消息传递模式。

本质上,我想要一组消息Producers和一组消息Consumers。生成消息后,我希望第一个可用的消费者处理消息。其他消费者不应收到该消息。

有没有办法在 Azure 中做到这一点?

4

3 回答 3

6

简单的。只需让两个(或更多)接收器同时从一个队列接收,你就完成了。任何检索到的消息都会恰好到达这些接收者之一,因为消息日志上的光标在接收消息时会前进。竞争消费者是网络队列的固有能力,因此实际上没有什么特别需要的。

如果您需要相反的情况 - 每条消息都发送给每个消费者 - 您可以为每个消费者创建一个订阅选项,这为您提供了一个独立于消息日志的游标,该游标可以独立于其他接收者移动。对于踢球,您显然也可以在订阅中拥有竞争消费者。

克莱门斯

于 2012-05-11T19:38:43.607 回答
3

你可能不想要 Topics ,而是Brokered Messaging

您可以通过使用消息的标签和/或内容类型属性以及PeekLock接收模式来模拟代理消息传递中的类似主题的功能。

于 2012-04-09T20:39:43.697 回答
3

主题是代理消息传递的一个功能,但它是一种一对多的“发布/订阅”模式。队列是一对一的消息通信。所以是的,听起来你应该简单地使用队列。另请参阅http://msdn.microsoft.com/en-us/library/hh689723(VS.103).aspx

于 2012-04-20T20:57:22.163 回答