首页 > 解决方案 > 用于 Azure 服务总线的 MassTransit 批量接收消息以避免限制

问题描述

MassTransit 中是否有一种方法可以让我们在一次通话中接收多条消息?我MassTransit.Azure.ServiceBus.Core 6.0.2在 Windows 服务中使用。

Azure 服务总线的限制为每秒 1000 个信用额度: https ://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-throttling

我们的场景是一个有 200 个订阅的主题。由于该限制,吞吐量仅为每秒 2 条消息,这非常低。Azure 会限制任何额外的调用。

如果 MassTransit 可以在 1 个呼叫中检索 100 条消息以避免限制,那就太好了。

标签: .netazureservicebusmasstransit

解决方案


MassTransit 不会通过调用 Azure 来接收消息,使用 AMQP 配置消费者并从代理推送。这是开箱即用的默认行为。如果您将协议更改为其他协议,例如 WebSocket,这可能会改变消息在后台传递的方式,但我不知道这将如何影响 Azure 服务总线中的服务计量。

MassTransit 在这一点上所做的任何事情都不会改变消息信用的使用方式。您可能会查看 Azure 如何使用 200 个订阅主题管理定价(这对我来说似乎太过分了)。


推荐阅读