此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开

使用自动转发链接 Service Bus 实体

更新时间: 2015年5月

使用自动转发功能可以将订阅或队列链接到属于同一服务命名空间的另一个队列或主题。启用了自动转发时,Service Bus 会自动删除放在第一个队列或订阅(源)中的消息,并将这些消息放入第二个队列或主题(目标)中。请注意,仍可以直接将消息发送到目标实体。另请注意,不能将子队列(如死信队列)链接到另一个队列或主题。

可以通过设置源的 QueueDescriptionSubscriptionDescription 对象的 Microsoft.ServiceBus.Messaging.SubscriptionDescription.ForwardTo 属性来启用自动转发:

SubscriptionDescription srcSubscription = new SubscriptionDescription (srcTopic, srcSubscriptionName);
srcSubscription.ForwardTo = destTopic;
namespaceManager.CreateSubscription(srcSubscription));

创建源实体时,目标实体必须存在。如果目标实体不存在,Service Bus 将在请求创建源实体时返回异常。

可以使用自动转发来向外扩展单个主题。Service Bus 将限制给定主题上的订阅数。可以通过创建第二级主题来容纳其他订阅。请注意,即使你不受 Service Bus 对订阅数限制的制约,添加第二级主题也可以提高主题的整体吞吐量。

自动转发方案

还可以使用自动转发将消息发送方与接收方解耦。例如,请考虑一个由以下三个模块组成的 ERP 系统:订单处理、库存管理和客户关系管理。其中每个模块将生成排入相应主题的消息。Alice 和 Bob 是销售代表,他们对与其客户相关的所有消息感兴趣。为了接收这些消息,Alice 和 Bob 每人在每个 ERP 主题上创建了一个个人队列和订阅,这些主题会将所有消息自动转发到他们的队列。

自动转发方案

如果 Alice 去度假,她的个人队列(而不是 ERP 主题)将填满。在此方案中,由于销售代表尚未收到任何消息,因此 ERP 主题从未达到配额。

当将各个主题链接在一起以获得包含许多订阅的复合主题时,建议你在第一级主题上设置中等数量的订阅,而在第二级主题上设置许多订阅。例如,第一级主题包含 20 个订阅,每个订阅都链接到包含 200 个订阅的第二级主题,可比第一级主题包含 200 个订阅,每个订阅都链接到包含 20 个订阅的第二级主题提供更高的吞吐量。

Service Bus 为每个转发消息的一个操作计费。例如,如果将一条消息发送到包含 20 个订阅的主题,每个订阅都配置为将消息自动转发到其他队列或主题,则将按 21 个操作计费(如果所有第一级订阅都收到该消息的副本)。

若要创建链接到另一个队列或主题的订阅,订阅创建者必须对源和目标实体具有管理权限。将消息发送到源主题只需要对源主题具有发送权限。

另请参阅

显示:
© 2015 Microsoft