多系统环境中的NServiceBus发布
我在一个系统上工作,我们在多个国家拥有相同的网站。每个网站都有自己的服务。一切都很好,但我总是发现自己不得不发送消息,而不是作为消息发布,否则我知道其他服务,这是完全不相关的。对我来说,发布到许多服务,然后过滤其相关性,这听起来毫无意义多系统环境中的NServiceBus发布,nservicebus,Nservicebus,我在一个系统上工作,我们在多个国家拥有相同的网站。每个网站都有自己的服务。一切都很好,但我总是发现自己不得不发送消息,而不是作为消息发布,否则我知道其他服务,这是完全不相关的。对我来说,发布到许多服务,然后过滤其相关性,这听起来毫无意义 当我想将消息发布到某个服务子集时,是否有一种做法需要我处理?其他人是如何处理这个问题的?您能否描述一下确定特定端点系统相关性的逻辑?发布和订阅的目的是,系统中存在其他端点可以订阅的事件。 你不应该对你的订户有所了解。那么如何确定相关性呢 如果这些消息与特定端点无
当我想将消息发布到某个服务子集时,是否有一种做法需要我处理?其他人是如何处理这个问题的?您能否描述一下确定特定端点系统相关性的逻辑?发布和订阅的目的是,系统中存在其他端点可以订阅的事件。
你不应该对你的订户有所了解。那么如何确定相关性呢
如果这些消息与特定端点无关,为什么要订阅这些消息?默认情况下,端点订阅所有消息。如果只希望某些端点订阅特定集,则需要将端点配置为DoNotAutoSubscribe()。然后,您必须明确订阅端点将感兴趣的每种消息类型。使用Bus.subscribe()。如果它确实是一条事件消息,则需要发布该消息。如果您需要发布到某个子集,那么您可以拥有一个独立的订阅存储,该端点将使用该订阅存储 通常,应由订阅者确定接收到的事件是否相关,但如果您事先有相关信息,则可以使用单独的订阅存储 在我的FOSS ESB项目中(http://shuttle.codeplex.com/)必须向ESB提供
ISubscriptionManager
实现,以确定要向其发送已发布消息的订户URI。尽管这可能有些过分,但可以提供一个自定义实现,其中包含一些执行过滤的逻辑;否则,将创建单独的订阅存储