我刚刚开始使用Windows Azure Service Bus( Topics& Queues ),我正在尝试实现竞争消费者消息传递模式。
基本上,我想要一组消息生产者和一组消息消费者。生成消息后,我希望第一个可用的消费者处理消息。没有其他消费者应该得到消息。
有没有办法在Azure中执行此操作?
答案 0 :(得分:5)
简单。只需制作两个(或更多)同时从单个队列接收的接收器即可完成。任何检索到的消息都会转到其中一个接收器,因为在消息传递过程中,光标在mesasage日志上会被提前。竞争的消费者是网络队列的固有能力,所以没有什么特别需要。
如果你需要相反的 - 每个消息发送给每个消费者 - 你为每个消费者做一个订阅,它给你一个可以独立于其他接收者移动的消息日志的孤立的cusor。对于踢球,你显然也可以在订阅上有竞争对手。
克莱门斯
答案 1 :(得分:3)
您可能不想要主题,而是Brokered Messaging。
您可以使用邮件的标签和/或内容类型属性以及PeekLock接收模式,在Brokered Messaging中模拟类似主题的功能。
答案 2 :(得分:3)
主题是代理消息传递的一个特性,但它是一对多的“发布/订阅”模式。队列是一对一的消息通信。所以是的,听起来你应该简单地使用队列。另请参阅http://msdn.microsoft.com/en-us/library/hh689723(VS.103).aspx。