如何加快读取 WebJob 中的 Azure ServiceBus 主题?
How to speed up reading from Azure ServiceBus topic in WebJob?
我有一个 Azure WebJob,它从 ServiceBus 主题读取消息,我正在寻找加速它的方法。我已经看到使用多个工厂和异步方法执行此操作的方法,但这些示例不适用于 WebJob,我不确定如何将其应用于 Web 作业,任何建议或相关文章的链接都会很多赞赏!
我看到的关于加速使用 ServiceBus 的想法的文章在这里:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements 我认为在普通的 exe 中我可以使用多个工厂和异步的想法,但是对于 WebJob 我有一个带有ServiceBusTrigger属性的方法,所以我不确定我是否可以在WebJob中使用本文中的想法。
如果您正在使用 ServiceBusTrigger
,您几乎被锁定在一个消息接收器中,其中 OnMessage 处理程序设置为您将配置的并发性。要获得吞吐量,您可以使用 NoAutomaticTrigger
网络作业并创建您自己的基础架构来处理消息。使用这种方法,您将能够创建多个消息接收器,每个接收器都有一个工厂(通道),并在每个接收器上设置并发性。异步(如果您不使用它)会有所帮助,正如@Rob 指出的那样。
这种方法的缺点是您需要自己做所有事情或使用第 3 方来为您提供中间件位。 NServiceBus 或 MassTransit 是两个选项。 NServiceBus 有一个 show case,它使用可以转换为使用服务总线的网络作业和存储队列。
我有一个 Azure WebJob,它从 ServiceBus 主题读取消息,我正在寻找加速它的方法。我已经看到使用多个工厂和异步方法执行此操作的方法,但这些示例不适用于 WebJob,我不确定如何将其应用于 Web 作业,任何建议或相关文章的链接都会很多赞赏!
我看到的关于加速使用 ServiceBus 的想法的文章在这里:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements 我认为在普通的 exe 中我可以使用多个工厂和异步的想法,但是对于 WebJob 我有一个带有ServiceBusTrigger属性的方法,所以我不确定我是否可以在WebJob中使用本文中的想法。
如果您正在使用 ServiceBusTrigger
,您几乎被锁定在一个消息接收器中,其中 OnMessage 处理程序设置为您将配置的并发性。要获得吞吐量,您可以使用 NoAutomaticTrigger
网络作业并创建您自己的基础架构来处理消息。使用这种方法,您将能够创建多个消息接收器,每个接收器都有一个工厂(通道),并在每个接收器上设置并发性。异步(如果您不使用它)会有所帮助,正如@Rob 指出的那样。
这种方法的缺点是您需要自己做所有事情或使用第 3 方来为您提供中间件位。 NServiceBus 或 MassTransit 是两个选项。 NServiceBus 有一个 show case,它使用可以转换为使用服务总线的网络作业和存储队列。