Azure Service Bus-订户可以独立订阅订阅并共享相同的消息



我是Azure Service Bus的新手,并创建了用于创建主题的成功POC和单独的订户应用程序以接收其消息。

基于本文,我引用:"一个主题最多可以具有与之相关的2,000个订阅,每个订阅都可以单独发送到该主题的所有消息。一个或多个订户可以独立订阅订阅和竞争 for来自它的消息。"

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

我想做的是将其扩展到多个应用程序以独立订阅同一主题,但不竞争

我当前的POC有一个发件人和两个单独的应用程序订阅了同一主题和订阅。我看到的行为是,如果我从发件人发出一条消息,则两个运行订阅应用程序中的任何一个都会收到它;但不是另一个。

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

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

我给出的例子是一所大学。主题是"新学生",大学中的每个部门都希望收到新学生的消息副本。因此,每个部门都有自己的订阅。将会有"音乐"," Billings"," Science","数学"订阅等。每个人都订阅了新的学生主题。这样,每个部门都会收到新学生消息的副本,甚至可以过滤他们是否需要的事情。如果该部门在处理这些处理方面落后,他们可以使用其订阅名称来启动更多处理器的实例,从而增加理论上的吞吐量,因为更多的消费者会在其订阅中争夺信息。

因此,在您的示例中,每个应用程序都需要创建自己的订阅或分配唯一的订阅,以便在启动时开始拉动。请注意,如果您让应用程序寿命确定订阅的寿命(这意味着在应用程序关闭时创建订阅并在应用程序关闭时销毁它),则需要意识到,如果没有活动的订阅,则会发送消息发送到该主题会丢失。但是,您可以创建一个仅接收未传递给其他订阅的消息的所有订阅。这确实取决于您要完成的工作。

您要寻找的不是服务总线,而是事件中心。事件中心正在正常工作,您可以描述,也可以通过AMQP访问。

最新更新