Azure服务总线-仅一个订户接收消息

时间:2019-01-21 22:54:34

标签: c# azure azureservicebus azure-servicebus-topics azure-servicebus-subscriptions

注意::从我得到的答复来看,Azure Service Bus似乎不是此工作的正确工具。我将问题留在这里,以防其他人使用。


我想设置一种情况,我有一个发布消息的应用程序,而有多个接收消息的应用程序。据我所知,Azure Service Bus Topics是为此目的而设计的。对this question的可接受答案是同一句话。

我一直遵循quick start sample来生成两个控制台应用程序,一个用于发送消息,一个用于接收消息。当我只有一个接收器应用程序实例在运行时,这很好用,但是如果我启动两个接收器实例,则只有其中一个接收到任何消息。

我尝试在接收消息的代码中删除对CompleteAsync的调用,但这没有任何区别。

我正在使用的代码与该文章中显示的完全一样,因此在此处全部贴上没有意义。

我敢肯定我只是对一些基本知识有误解,但我认为这样的想法是,主题和订阅可以使您拥有尽可能多的接收者。

有人能解释我在做什么吗?

2 个答案:

答案 0 :(得分:0)

扩展接收器表示单个逻辑端点。您可以扩展以更快地处理消息,而不是确保每个实例都获得一个副本。如果您有此需要,那么您的接收者在逻辑上必须是不同的端点,而不是相同的端点。相同的逻辑接收者/端点不应两次​​处理相同的消息。

总结一下:

  • 如果您想更快地处理消息,请使用相同的接收器并向外扩展。
  • 如果需要确保每个接收者都能收到所有邮件,请使用不同接收者。

答案 1 :(得分:0)

您需要具有不同的订阅客户端来代替不同的接收者。您应该在“主题”下有两个“订阅”,以便在两个不同的地方收到它。

通过这种方式,您需要为两个订阅创建一个订阅客户端,每个接收器应用程序中一个。这样您就可以同时在两个应用程序中接收消息。

相关问题