假设我有一条ClientRequestMessage
消息,其中包含对特定Client
. Web 应用程序将生成这些请求,并且需要将它们发送到正确的位置Client
进行处理。我可以为此想到一些选择。
- 我可以有一个所有消息都发送到的队列,并且特定的客户端处理程序检查一个属性(如
ClientId
)来决定他们是否关心它。不过,这在很多层面上对我来说都是错误的。 - 我可以向所有客户发布一条消息,他们可以决定在处理过程中是否关心它。这似乎是太多的流量,浪费了每个客户处理他们最初不应该关心的消息的时间。
- 我可以有客户端特定的队列,这些消息也被路由。这对我来说感觉最好,但我不确定如何去做。我想保持简单并避免使用客户端特定的消息类型,但我不确定如何告诉 NServiceBus“客户端 A 将其发送到客户端 A 的队列,客户端 B 将其发送到客户端 B 的队列”。
所以我的问题是,最好的(最有效的?最容易管理的?)方法是什么?我很确定我需要使用分销商,但不是肯定的,所以我想我会问。
奖励问题:
假设每个客户端都有多个处理程序。如何确保只有其中一个处理给定消息?我需要每个客户的分销商吗?