我有一个微服务(Web API),它将消息发布到主题(主题 A)。
现在我有另一个微服务(Web API),它应该订阅该主题并根据消息采取行动。
我的问题很简单:既然我应该订阅该主题的微服务是 WebApi,我应该如何执行此操作?在我的 Web api 中,我希望以某种方式立即知道主题中何时有新消息可用。我应该通过端点轮询服务总线吗?
我不确定这方面的最佳实践。
我见过的所有使用控制台应用程序进行订阅的示例。但这不是我的情况,因为我有一个 Web api。
最佳答案
有不同的方法可以做到这一点。
<强>1。使用Azure Functions
这样您就可以创建两个应用程序。标准 Web api,并单独创建一个 Azure 函数来处理来自队列的消息。这种方法有很多好处,其中之一是您可以隔离处理队列的代码,因此如果您有很多消息,也不会影响 API 的性能
<强>2。使用 Singleton service 在您的网络应用程序中
这里的想法是您的 API 应用程序在后台处理队列消息。这样做的优点是,您只需一个应用程序即可完成所有工作,例如更易于维护。它的缺点是大量的消息流入会减慢 API 的速度。
(注意,在上面的链接中查找“Consuming messages from the Queue”
关于c# - 使用 Azure 服务总线发布/订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60976289/