NServiceBus发布/订阅

Mat*_*att 5 c# nservicebus publish-subscribe nservicebus-distributor

我们正在努力寻找一种优雅的解决方案,用于报告从我们基础架构中的系统生成的异常,这些异常比查看电子邮件或检查日志文件更容易操作.跨服务总线的发布/订阅模型可以非常巧妙地解决这个问题.服务将发布错误/事件,并且子程序员可以使用简单模式匹配过滤这些消息.

我们一直在调查NServiceBus项目并想知道它是否能达到我们的要求,看看PubSub示例(http://docs.particular.net/samples/pubsub/),我们注意到它没有解决以下两种情况:

  1. 所有发布者都发布相同的消息类型
  2. 订阅者不应要求了解发布者端点

我们已设法达到这些要求,但我们不确定配置是否正确.以下是我们的解决方案:

  1. 所有发布者共享相同的订阅存储配置(DBSubscriptionStorage),这是一个共享数据库,如文档http://docs.particular.net/nservicebus/messaging/publish-subscribe/的订阅存储部分所述.

  2. 所有发布者/订阅者都配置为使用nservicebus网站上的文档中描述的分发者.

我们想知道这是否是NServiceBus发布/订阅模型的正确实现,或者是否有其他解决方案可以实现我们的目标?

Udi*_*han 2

这已在此处的讨论组中进行了讨论:

http://nservicebus.grouply.com/message/7059

简而言之,您会让每个节点发送而不是发布到单个端点。

希望有帮助。

  • 马特 - 我认为您正在将多个“物理”发布节点的想法与多个“逻辑”发布服务相结合。NServiceBus 强制执行单个逻辑发布服务,但在该服务中,允许使用任意数量的物理节点(在生产配置文件中自动设置,手动执行此操作,您将使用 DbSubscriptionStorage)。此外,IBus.Publish 用于传达“已经”发生的事件,而 Send 用于请求我们想要发生的事情(但可能会被拒绝)。事件无法被拒绝(因为它们已经发生)。 (3认同)