8

我花了几个小时才了解 Azure 服务总线架构。我特别想知道这种排队技术是否可以用来支持消息路由——类似于 RabbitMQ 的路由能力。 http://www.rabbitmq.com/tutorials/tutorial-four-python.html

我们将改为使用直接交换。直接交换背后的路由算法很简单——消息进入绑定键与消息的路由键完全匹配的队列。

在这个设置中,我们可以看到绑定了两个队列的直接交换 X。第一个队列用橙色绑定键绑定,第二个队列有两个绑定,一个用黑色绑定键,另一个用绿色绑定。

在这样的设置中,使用路由键橙色发布到交换的消息将被路由到队列 Q1。路由键为黑色或绿色的消息将发送到 Q2。所有其他消息将被丢弃。

寻找对服务总线架构有深刻理解的人来推荐实现这种队列的最佳向量。

4

1 回答 1

11

Windows Azure 服务总线主题和订阅允许您执行完全相同的操作:

在此处输入图像描述

让我们将图像与您的示例进行比较:

  • 直接交换 X 将是图像中的DataCollection Topic
  • Q1 将是仪表板 SubscriptionFilter设置为Redmond
  • Q2 将是库存 Subscription(没有Filter,意味着它将接收所有消息)。

其实很简单。您的客户端向主题发送消息(类似于队列),并且可以向该消息添加一些元数据(这可以用作binding key)。现在您不再从 Topic 本身读取消息,Topic 会将消息转发给所有订阅。要实现消息路由,您只需使用类似于 SQL 的语法对一个或多个订阅设置一个过滤器。

Python 教程:如何使用服务总线主题/订阅

于 2012-12-06T22:17:34.820 回答