我正在尝试使用 EDA 和 NServiceBus 解耦两个应用程序。目前,我有一个销售 MT 和一个库存 MT。每当通过销售 MT 请求销售时,在批准之前,销售 MT 将调用库存 MT 以确保有可用库存。我想改变它的工作方式,以便销售 MT 自动批准它,并发布一个异步“SaleCreated”事件,然后库存 MT 和计费 MT 将订阅该事件。如果有任何缺货商品,库存 MT 可以在离线过程中标记销售。
我的问题是我有 10 个 Sales MT 实例、5 个 Inventory MT 实例和 3 个 Billing MT 实例。所有 3 个应用程序在位于 10/5/3 服务器前面的 LoadBalancer 之上都有自己的虚拟 IP。所以基本上我有 1 个虚拟出版物(SaleCreated 事件)和 2 个虚拟订阅(库存和计费订阅者)。理想情况下,由销售 MT 处理的销售应该创建一个 SaleCreated 事件消息以发送到 1 个且仅 1 个库存 MT,以及 1 个且仅一个计费 MT。我真的很困惑这将如何工作,因为我还没有在 NServiceBus 站点上看到这种情况的示例。此外,我不希望每个订阅都将所有消息发送到单个分发器,因为这会导致一台机器成为瓶颈。
有没有办法做到这一点?