c# - 使用 Azure 服务总线发布/订阅

标签 c# azure asp.net-core azureservicebus

我有一个微服务(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/

相关文章:

javascript - 如何在mvc 5中基于静态下拉列表过滤数据库记录

c# - 任何形式的 Google 搜索 API 可用于 C#?

c# - 静态类在 AppDomain 之间共享吗?

python - 如何设置始终加密的 Azure SQL 数据库并用数据填充它?

c# - 升级到.net 6.0后是否可以删除startup.cs文件以保留在Program.cs中?

asp.net-core - AspNet Core 中的实时编码

c# - SmtpClient无法发送;雷鸟可以

c# - Azure 和 Sendgrid 连接问题

c# - 以编程方式导出 Azure 模板

linq - 使用 Moq 进行单元测试有时会在 ToListAsync() 上失败