在多租户系统中按租户控制队列并发

Control queue concurrency by tenant in multi-tenancy system

我有一个多租户系统,需要保证租户对排队消息的 FIFO(先进先出)处理,即每个租户都会得到自己的 MaxConcurrentCalls = 1

在 Azure 中完成,技术未固定。

我知道这可以通过为每个租户创建一个单独的 WebJob 来实现,但这会限制可扩展性。

还有其他方法可以实现这种行为吗?

既然你提到了服务总线,我建议

  • 在启用会话的情况下使用服务总线队列或主题
  • 根据租户 ID 分配会话标识符

通过这种方式,您应该能够按租户一个接一个地按顺序处理消息,但多个租户可以并行处理。