首页 > 解决方案 > 如何在 Azure 服务总线中管理主题和事件/消息的发布?

问题描述

最初我以为您可以将主题视为微服务。例如,您可能有以下主题:

当一个应用程序发布一个“事件”ProductOrderedEvent时,所有对此事件感兴趣的主题都可以订阅它。所以它看起来像这样:

但是当我尝试发布一个事件(或者消息)时,我必须明确地命名我想要将事件发布到的主题。所以我想我对“主题”一词的看法是错误的。

我只是想按上下文按代码分组。关于产品的一切都应该存在于 中ProductsTopic,关于订单的一切都应该存在于OrdersTopicetc中。

但我不想在我的代码中明确命名每个主题。我只想发布一个事件,对此事件感兴趣的任何主题的订阅者应该能够选择这个事件。

是否可以将事件/消息发布到简单的所有主题而不明确命名它们?或者我应该简单地将我的主题命名为“MyOrganizationName”并将所有订阅者都放在那里?

标签: azureazureservicebusazure-servicebus-topicsazure-servicebus-subscriptions

解决方案


虽然您不能在不命名主题的情况下向主题发送消息,但是您可以拥有一个“包罗万象”的主题、带有主题过滤器的订阅以及根据需要将消息转发到不同的链接实体

对于您的示例,您将具有以下设置

CatchAllTopic
|__ OrderSubscription
|   |__ OrderTopic 
|__ InvoiceSubscription
    |__ InvoiceTopic

因此,您的所有应用程序都会将消息发送到CatchAllTopic,每个订阅都会在其中过滤所需的消息并将它们转发到各自的主题。

请阅读使用自动转发时要考虑的注意事项。


推荐阅读