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