Nservicebus ServiceBus类型-队列隔离最佳实践

Nservicebus ServiceBus类型-队列隔离最佳实践,nservicebus,rebus,Nservicebus,Rebus,假设有一个服务总线实例以单向模式工作。服务总线生成两种消息:Foo和Bar。这两种消息类型都将保存在数据库中 因此,我可以看到两种方法: 有两个队列(FooQueue、BarQueue)和两个总线实例(两个进程)——一个用于从FooQueue接收,一个用于从BarQueue接收 有一个队列和一个总线实例,其中有两个用于Foo和Bar消息的处理程序 我想问什么是决定何时使用哪种方法的最佳实践(甚至可能是决策树?:) 提前感谢好的。。。。在您的案例中,这听起来很像周围的基础设施(即数据库连接字符串、

假设有一个服务总线实例以单向模式工作。服务总线生成两种消息:Foo和Bar。这两种消息类型都将保存在数据库中

因此,我可以看到两种方法:

  • 有两个队列(FooQueue、BarQueue)和两个总线实例(两个进程)——一个用于从FooQueue接收,一个用于从BarQueue接收

  • 有一个队列和一个总线实例,其中有两个用于Foo和Bar消息的处理程序

  • 我想问什么是决定何时使用哪种方法的最佳实践(甚至可能是决策树?:)


    提前感谢好的。。。。在您的案例中,这听起来很像周围的基础设施(即数据库连接字符串、数据层API)以及问题域(“将消息保存到数据库”)在这两种消息类型之间共享-听起来它们不会得到不同的处理-对我来说,听起来,让一个端点来接收和保存消息是很有意义的


    事实上,如果您知道端点只能接收必须保存的消息,那么您可以使用单个处理程序来实现
    IHandleMessages

    谢谢您的回答。因此,我想这类争议没有通用的模式,只是情况的问题?有些人可能不同意,但我喜欢这样想:)首先,让一个端点处理来自单个队列的两条消息可能并不重要。但是,将端点作为另一个实例安装并使用配置在两个端点/队列之间使用路由拆分消息处理应该非常简单。我遇到过这样一种情况,我们最终需要对来自前端的消息进行优先级处理,而对后端处理则需要更长的队列。