2

您将如何在多租户应用程序中使用 rebus?

你会选择:

  • 所有租户一起的rebus队列或
  • 每个租户一个 rebus 队列(输入/错误)
4

1 回答 1

2

免责声明:我对您的问题的上下文一无所知:)

但我认为我更喜欢一个处理消息的消息队列,然后将租户 ID 作为所有相关消息的自定义标头传递。

事实上,我的一些同事现在正在这样做。

当您想在标头中传递此类信息时,有些事情会变得很漂亮 - 即我可以建议您通过执行以下操作自动将租户 ID 传输到传出消息:

Configure.With(...)
   .(...)
   .Events(e => {
       e.MessageSent += (bus, dest, msg) => {
           if (!MessageContext.HasCurrent) return;

           var items = MessageContext.GetCurrent().Items;
           if (!items.ContainsKey("custom-tenant-id")) return;

           bus.AttachHeader(msg, "custom-tenant-id", items["custom-tenant-id"]);
       };
   })
   .(...)

因此允许交换消息,而不必担心沿途的租户 ID。

于 2014-05-27T06:14:45.733 回答