实施 Azure 服务总线侦听器应用程序

Implementing an Azure Service Bus listener application

我正在开发 ASP.NET Web API 服务并将这些服务放入 Azure 服务总线队列中进行处理。 Web API 服务托管在 Azure 上。

我需要实现一个应用程序来侦听这些消息并在收到消息时进行处理。

我希望将其托管在 Azure 上,但不确定实现此目的的最佳方式。

监听队列的工作人员的几个选项是:

  1. 函数
  2. 网络工作

您可以在此处查看使用函数的示例:https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-an-event-processing-function

此处是使用 Web 作业的示例:https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-service-bus

两者都允许您创建使用队列中消息的后台作业。两者都支持存储和服务总线队列。主要区别在于 Web 作业需要具有一定数量实例的应用服务计划,而函数可以 运行 在动态计划上,该计划完全自动扩展。

您应该注意,函数并不适用于非常长的 运行ning 作业(超过 5-15 分钟),尽管 Web 作业也不是。

您可以做几件事。 您可以使用 ASB 的 OnMessage API,它允许您注册回调并使用并发和自动完成处理传入消息。

在 Azure 上你有几个选择:Cloud Services (worker roles), Azure Web Jobs, Azure Functions(如果你的处理速度很快,否则我不推荐),Service Fabric(如果系统很小,可能有点矫枉过正),以及普通虚拟机(如果需要)。

关于功能的警告 - 如果您从事高强度工作,功能并不理想,因为您会为执行的 time/memory 付费。

为什么不在 docker 中尝试 运行 一个 linux 进程(守护进程)。