发布/订阅 Publish/subscribe
在NServiceBus 的单向(one-way)通信模式中,消息的发送者往往无法知道接收者的详细信息。实现这个额外的“松耦合”的代价是:订阅者Subscriber 需要显式的选择接入,从而来接受特定消息。如下图所示:
(1) 订阅Subscription
订阅者需要知道那个服务终端(Endpoint)负责特定的消息。这些信息通常放在契约Contract中,用于指定一个订阅者应该把请求发给哪个终端。作为“订阅消息”的一部分,订阅者传递了它的“返回地址return address”,用于告诉服务发布者它希望接受消息的终端。
记住,服务发布者终端会记住(存储到DB)对每个事件消息感兴趣的每个订阅终端的地址。这种方式允许多台发布服务终端同时工作,而不用管哪台服务终端是否受到了订阅的消息。举个例子: