在横向扩展方案中,一个服务器由主工作端点和工作端点组成,另一个服务器由工作端组成,在完成处理给定事件时从端点调用bus.Publish是否安全? (记住bus.Publish可以从位于工作服务器上的端点调用)。
我最初的反应是,它不安全,因为它听起来像你不应该从Web服务器调用发布的例子...
我们当然可以使用WCF包装器并调用仅存在于主+工作端点服务器上的服务,但是有没有人对此有任何实际经验?
谢谢!
每个逻辑订户都有一个接收端点。如果您正在使用分销商,那么这是分销商端点或分销商队列(如果您愿意)。因此,订户将订阅特定事件并指定其接收端点。发布者不知道它是否是单个端点实例,或者它是否是接收消息的分发者。
然后,分发者将消息发送给准备处理消息的工作人员。
本页详细解释了这一点以及一些澄清图像:http://docs.particular.net/nservicebus/scalability-and-ha/distributor/publish-subscribe
最后,我们将我们的Web应用程序设为“仅发送端点”,这实际上意味着它们只需通过选定的传输(在我们的MSMQ中)将命令直接发送到端点。一旦我们需要扩展,我们最终将实施“发送方分配”而不是利用分销商。
来自NSB支持团队:“如果您添加更多端点,则发送方配置是可行的方式。它充当在发送方运行的循环机制,当您向外扩展时,它将向不同的'工作'端点发送消息“。
https://docs.particular.net/transports/msmq/sender-side-distribution
如果您只需要发布来自网站或其他应用程序/服务的消息,我会推荐这种方法 - 它非常简单。