比方说,我有一个ClientRequestMessage
消息,其中包含对特定Client
的请求。网络应用程序将生成这些请求,并且需要将它们发送到正确的Client
进行处理。我可以为此考虑一些选择。将NServiceBus消息路由到特定客户端的最佳方式是什么?
- 我能有一个队列,所有的消息去和特定的客户端处理程序检查属性(如
ClientId
),以决定他们是否关心它。尽管如此,这在许多层面上都感觉不对。 - 我可以向所有客户发布消息,他们可以决定他们在处理过程中是否关心它。这看起来像是太多的流量,并且浪费了每个客户的时间处理消息,尽管他们不应该关心。
- 我可能有客户端特定的队列,这些消息也被路由。这对我来说是最好的,但我不确定如何去做。我想保持简单并避免客户端特定的消息类型,但我不知道如何告诉NServiceBus“客户端A将其发送到客户端A的队列,并且客户端B将其发送到客户端B的队列”。
所以我的问题是,什么是最好的(最有效的?最容易管理?)的方式来设置它?我很确定我需要使用经销商,但不是积极的想法,我会问。
红利问题:
假设每个客户端都有多个处理程序。我如何确保其中只有一个人处理给定的消息?我需要每个客户的分销商吗?
你最终使用了什么解决方案? – Charlino
我仍在努力解决它。我对发布到所有方法都不是很满意,因为这些是客户端特定的队列,理想情况下他们无法访问彼此的消息。 –