我们有1个服务从数据库中选择som id,然后按顺序处理它们的某些商务逻辑。我们希望扩展并且并行执行的处理,而不会创建大量内部线程。
我的问题是:
如果我想使用经销商进行扩展,我该怎么做以及如何做?
解决方案1: 该服务分为2:
解决方案2: 该服务分为3:
解决方案3: 该服务分为2:
解决方案1对我来说很有意义,但使用它会意味着分销商会有两种责任:
但是,当我查看NSB文档中的ScaleOut示例时,我不确定这是否可行,甚至可能是反模式。
解决方案3是我认为我应该去的,在阅读了文档和ScaleOut示例之后,但我还不太确定。
我试图通过扩展NSB分销商来解决管道问题,我宁愿做自己的托管,而不是使用NServiceBus.Host.exe,但这不是一个严格的要求。
修改 我最终使用解决方案3,因为它具有(在我看来)配置队列的任务小于解决方案2的任务,如果您使用默认队列命名。
亲切的问候
答案 0 :(得分:1)
我们在过去的版本中使用解决方案2完成了这个。原因是我们使经销商站在一起并且高度可用。在未来,我们很可能让经销商做一些工作,否则它将只是相对空闲。这个解决方案很适合我们。