1

我正在研究基于 WCF 的发布订阅框架的各种选项。假设我有一个 WCF Web 服务,它将作为发布者和 1000 个注册为订阅者的客户端。对于某些已发布的消息,所有客户端都会感兴趣,但同时我希望能够用特定消息通知单个客户端。收到通知后,客户端将调用 Web 服务上的其他 Web 服务方法。

NServiceBus 适合这种场景吗?如果我使用 MSMQ 进行传输,是否意味着安装了客户端的每台 PC 都需要创建一个队列?

4

1 回答 1

4

一些挑战包括您希望发布者在给定订阅客户端关闭时如何表现 - 您是否希望在订阅者恢复时该消息可用?如果是这样,那么它们之间需要某种持久的消息传递——比如 MSMQ。

您关于通知单个客户的问题是该客户发送的请求的结果吗?如果是这样,那么以 Bus.Reply 形式的标准 NServiceBus 调用将为您完成。使用 WCF 时,如果响应是异步的,则需要使用回调协定。

NServiceBus 可以完成您描述的所有事情,并且能够自动安装 MSMQ 和创建队列,从而大大简化客户端部署。

您还可以使用 NServiceBus 通过 WCF 公开消息,因此您可以在需要时支持非 NServiceBus 客户端。它还有自己的 http 网关和 XSD 架构,即使不使用 WCF,也可以允许非 Windows 平台上的客户端进行互操作。

希望能回答你的问题。

于 2010-03-22T21:55:02.097 回答