如何加速从WebJob中的Azure ServiceBus主题读取?

时间:2017-04-25 16:16:13

标签: azure azure-webjobs azureservicebus

我有一个Azure WebJob,它从ServiceBus主题中读取消息,我正在寻找加快速度的方法。我已经看到了使用多个工厂和异步方法执行此操作的方法,但这些示例不适用于WebJob,我不确定如何将其应用于Web作业,任何建议或相关文章的链接都会很多理解!

我看过有关加速使用ServiceBus的想法的文章在这里:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements我认为在正常的exe中我可以使用多个工厂和异步的想法,但是使用WebJob我有一个方法使用ServiceBusTrigger属性,所以我不确定我是否可以在WebJob中使用本文中的想法。

1 个答案:

答案 0 :(得分:2)

如果您正在使用ServiceBusTrigger,那么您几乎会被锁定到单个消息接收器中,并且OnMessage处理程序设置为您要配置的并发性。要获得吞吐量,您可以使用NoAutomaticTrigger webjob并创建自己的基础架构来处理邮件处理。通过这种方法,您可以创建多个消息接收器,每个消息接收器具有工厂(通道),并在每个接收器上设置并发性。异步(如果你不使用它)将有助于@Rob指出。

这种方法的缺点是您需要自己做所有事情或使用第三方为您提供中间件位。 NServiceBus或MassTransit是两个选项。 NServiceBus有一个show case,它使用可以转换为使用服务总线的webjobs和存储队列。