Azure 服务总线 - 订阅者可以独立订阅订阅并共享相同的消息吗?

标签 azure service subscriptions bus

我是 Azure 服务总线的新手,并且已经成功创建了用于创建主题和单独订阅者应用程序来接收其消息的 Poc。

根据这篇文章,我引用: “一个主题最多可以有 2,000 个与其关联的订阅,每个订阅都会获得发送到该主题的所有消息的独立副本。一个或多个订阅者可以独立订阅某个订阅并竞争来自它的消息。”

http://convective.wordpress.com/2011/06/08/windows-azure-appfabric-service-bus-queues-and-topics/

我感兴趣的是将其扩展到多个应用程序,以独立订阅同一主题,但不竞争它们。

我当前的 poc 有一个发送者和两个订阅同一主题和订阅的单独应用程序。我看到的行为是,如果我从发件人发布一条消息,则两个正在运行的订阅应用程序之一将收到该消息;但不是另一个。

我的问题是多个独立的应用程序是否可以接收相同的主题消息?任何建议将不胜感激!

最佳答案

当您创建主题订阅时,它具有特定的订阅名称。然后开始请求该订阅名称的消息的任何消费者都将竞争该订阅上的消息。如果您希望独立的应用程序每个都收到发送到某个主题的消息的副本,那么它们每个都必须创建自己的主题订阅。您几乎可以将每个订阅视为一个由主题提供的队列。

我举的例子是一所大学。主题是“新生”,学院内的每个部门都希望收到一份针对新生的消息副本。因此,每个部门都有自己的订阅。会有“音乐”、“比林斯”、“科学”、“数学”订阅等。他们每个人都订阅新生主题。通过这种方式,每个部门都会收到一份新学生消息的副本,或者甚至可以根据需要过滤他们关心的事情。如果该部门在处理这些消息方面落后,他们可以使用其订阅名称启动更多处理器实例,从而理论上增加其吞吐量,因为更多的消费者将竞争其订阅中的消息。

因此,在您的示例中,每个应用程序都需要创建自己的订阅,或者分配一个唯一的订阅,以便在启动时开始提取。请注意,如果您让应用程序生命周期决定订阅的生命周期(意味着您在应用程序启动时创建订阅并在应用程序关闭时销毁它),您需要注意,如果没有事件订阅,则消息会发送到主题只会丢失。但是,您可以创建一个捕获所有订阅,该订阅仅接收未传递到任何其他订阅的消息。这实际上取决于您想要实现的目标。

关于Azure 服务总线 - 订阅者可以独立订阅订阅并共享相同的消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199333/

相关文章:

c# - 如何在使用 Host.CreateDefaultBuilder 装载的 Web 主机中配置日志记录

iphone - 如何检查用户是否已在我的iPhone应用程序中订阅

azure - 无法通过 Azure 门户中的 Powershell 运行命令启用/禁用 VM 的网络接口(interface)

asp.net-mvc - Azure 服务总线等待响应

android - 从应用程序到服务的通信

ios - 如何更改 "share your information"中的公司名称以在 iTunes 中自动续订?

php - 在迷你购物车中显示 Woocommerce 订阅重复总数

c# - 从 SendGrid 作为公司域发送电子邮件

azure - 逻辑应用程序 : List blobs pagination limit

sql - 授予对所有服务代理对象的权限