Azure Service Bus中的竞争消费者消息传递模式

时间:2012-04-09 18:53:46

标签: azure azureservicebus

我刚刚开始使用Windows Azure Service Bus( Topics& Queues ),我正在尝试实现竞争消费者消息传递模式。

基本上,我想要一组消息生产者和一组消息消费者。生成消息后,我希望第一个可用的消费者处理消息。没有其他消费者应该得到消息。

有没有办法在Azure中执行此操作?

3 个答案:

答案 0 :(得分:5)

简单。只需制作两个(或更多)同时从单个队列接收的接收器即可完成。任何检索到的消息都会转到其中一个接收器,因为在消息传递过程中,光标在mesasage日志上会被提前。竞争的消费者是网络队列的固有能力,所以没有什么特别需要。

如果你需要相反的 - 每个消息发送给每个消费者 - 你为每个消费者做一个订阅,它给你一个可以独立于其他接收者移动的消息日志的孤立的cusor。对于踢球,你显然也可以在订阅上有竞争对手。

克莱门斯

答案 1 :(得分:3)

您可能不想要主题,而是Brokered Messaging

您可以使用邮件的标签和/或内容类型属性以及PeekLock接收模式,在Brokered Messaging中模拟类似主题的功能。

答案 2 :(得分:3)

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