使用azure服务总线,如何将单个消息发布到多个队列?

时间:2019-01-12 18:34:49

标签: azure azureservicebus azure-servicebus-queues azure-servicebus-topics

我有一个客户端应用程序,它将消息发布到单个位置/目标,并且我还需要该消息最终以3个单独的其他队列结束(并随后进行处理) 基本上这是用例: 网站以潜在客户形式收集客户信息。该线索信息被推送到一个宁静的Web api。然后,restfull Web API将消息发布到单个位置,然后将成功结果返回给客户端。在后台,该消息最终出现在4个队列中,并最终发送到4个其他Web服务(一些外部,一些内部)

对于从4个队列中处理所有4个队列的速度,系统需要具有高性能。但是引线的数量并不一定很高。 (每天可能有几百条线索)

这是我在想什么 message flow

3 个答案:

答案 0 :(得分:1)

您可以结合使用主题和自动转发功能。

https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-auto-forwarding

然后可以将单个主题发布设置为自动转发到4个单独的队列。

答案 1 :(得分:0)

您应该使用Topics而不是使用队列:

  

队列通常用于点对点通信,主题在发布/订阅场景中很有用。

主题和订阅使用发布/订阅模式提供“一对多”通信形式。

如果您确实需要使用队列,除了将邮件副本发送到不同的队列外,别无其他方法。

答案 2 :(得分:0)

解决业务方案的最佳解决方案是使用带有四个主题订阅的服务总线主题。您可以将消息发送到主题。您可以创建过滤器(或)Topic subscription rules来过滤服务总线主题收到的消息。

然后您可以将每个主题订阅的auto-forward属性设置为所需的服务总线队列。