我需要花几个小时来了解Azure Service Bus架构。我特别想知道这种排队技术是否可用于支持消息路由 - 类似于RabbitMQ的路由功能。 http://www.rabbitmq.com/tutorials/tutorial-four-python.html
我们将使用直接交换。背后的路由算法 直接交换很简单 - 消息传递给绑定的队列 key完全匹配消息的路由密钥。
在此设置中,我们可以看到直接交换X绑定了两个队列 它。第一个队列绑定了绑定键orange,和 第二个有两个绑定,一个绑定键为黑色,另一个绑定 与绿色。
在这样的设置中,使用路由密钥将消息发布到交换机 橙色将被路由到队列Q1。路由密钥为的消息 黑色或绿色将进入Q2。所有其他消息都将被丢弃。
寻找对服务总线架构有深刻理解的人,以推荐实现此类队列的最佳载体。
答案 0 :(得分:10)
Windows Azure Service Bus主题和订阅允许您执行完全相同的操作:
让我们将图像与您的示例进行比较:
Topic
。Subscription
(Filter
设置为 Redmond )Subscription
(没有Filter
,这意味着它会收到所有消息。)实际上非常简单。您的客户端向主题发送消息(类似于队列)并可以向此消息添加一些元数据(这可以用作binding key
)。现在您不会从主题本身读取消息,主题会将消息转发给所有订阅。要实现消息路由,您只需使用类似于SQL的语法在一个或多个订阅上设置过滤器。