我有一个多租户网络应用,其中使用MSMQ将消息发送到NServiceBus端点。
我遇到的问题是,有时一个租户可能会执行批处理操作,并且端点会受到来自这个租户的消息的影响。然后,来自其他租户的后续消息将备份到消息队列中,直到端点最终到达它们。
我想要做的是更改架构,以便每个租户都有一个队列。在发送方,这个代码更改很简单... bus.Send方法可以指定每个租户的队列名称......并且不需要进行任何更改以容纳其他租户。
但我不知道接收方会做出什么改变。据我了解NServiceBus Endpoint配置,每个端点只能侦听一个传入的MSMQ队列。这告诉我,我必须拥有我的端点处理应用程序的多个实例...每个租户队列一个。这种方法不具备可扩展性 - 它要求开发人员在每个新租户注册时手动添加新实例。
有没有办法通过某种自动化实现这一目标?
单个EndPoint处理应用程序是否可以监控多个队列。
如果是这样(因为我们知道NSB配置包含逻辑) 创建一个在启动时不存在的队列)可以用它 每个新租户签名后,在启动后创建一个新的每个租户队列 吗?
我想这只是对遇到类似问题的人提出的建议的呐喊。