NServicebus层次结构

NServicebus层次结构,nservicebus,soa,esb,Nservicebus,Soa,Esb,我刚刚开始学习NServicebus(以及一般的SOA),对于解决方案的结构和常见的最佳实践,我有一些问题和要点需要澄清: 文档并没有真正解释端点是什么。据我所知,它是一个单位 部署和您的服务将有一个或多个端点。这是正确的吗 对于您正在开发的每个服务,使用一个VS解决方案是否被视为最佳实践?先是消息项目,然后是每个端点的项目,最后是与包含域层的端点共享的项目 据我所知,服务通常由单个组件组成。服务中的任何组件都可以(或者应该)访问同一个数据库,或者每个组件都应该有一个数据库 感谢您提供的任何澄清

我刚刚开始学习NServicebus(以及一般的SOA),对于解决方案的结构和常见的最佳实践,我有一些问题和要点需要澄清:

  • 文档并没有真正解释端点是什么。据我所知,它是一个单位 部署和您的服务将有一个或多个端点。这是正确的吗

  • 对于您正在开发的每个服务,使用一个VS解决方案是否被视为最佳实践?先是消息项目,然后是每个端点的项目,最后是与包含域层的端点共享的项目

  • 据我所知,服务通常由单个组件组成。服务中的任何组件都可以(或者应该)访问同一个数据库,或者每个组件都应该有一个数据库


  • 感谢您提供的任何澄清或见解。

    我将尽力回答您的问题

    我不确定“最佳实践”这个术语,我会考虑“最佳思维”或“范式”< /P>。 Q1:是的,端点是一个使用其队列消息的已部署进程

    它不必属于单个“服务”(逻辑)(例如,在web端点的情况下),端点可以部署一个或多个处理程序

    问题2:我将为每个逻辑域服务提供一个解决方案(以及稍后的repo),在解决方案中,我将为每个消息处理程序创建一个项目,因为随着您的扩展,您将需要在端点之间移动处理程序,或者根据扩展将处理程序移动到它们自己的端点。然而,消息是契约,所以我会将它们放在一个解决方案中,可能会拆分命令和事件。你可以考虑一些类似NuGET的方式来发布你的消息包。 问题3:“服务”是自治组件的逻辑组合,每个组件都是功能的垂直部分,因此它们可以共享同一个数据库,但我认为只有一个组件有权修改自己的数据。我总是在想当你需要扩展时会发生什么


    这有意义吗?

    我会尽力回答你的问题

    我不确定“最佳实践”这个术语,我会考虑“最佳思维”或“范式”< /P>。 Q1:是的,端点是一个使用其队列消息的已部署进程

    它不必属于单个“服务”(逻辑)(例如,在web端点的情况下),端点可以部署一个或多个处理程序

    问题2:我将为每个逻辑域服务提供一个解决方案(以及稍后的repo),在解决方案中,我将为每个消息处理程序创建一个项目,因为随着您的扩展,您将需要在端点之间移动处理程序,或者根据扩展将处理程序移动到它们自己的端点。然而,消息是契约,所以我会将它们放在一个解决方案中,可能会拆分命令和事件。你可以考虑一些类似NuGET的方式来发布你的消息包。 问题3:“服务”是自治组件的逻辑组合,每个组件都是功能的垂直部分,因此它们可以共享同一个数据库,但我认为只有一个组件有权修改自己的数据。我总是在想当你需要扩展时会发生什么


    这有意义吗?

    答案很好,但我不会为每个消息处理程序创建单独的项目。听起来有点过早优化。当需要的时候,你可以把相关的处理程序分成不同的项目。同意——这是个好答案,我也同意每个处理程序一个项目很快就会失控。将消息程序集(或多个程序集)发布到本地nuget服务器可以消除大量消耗项目的摩擦。这对我来说是一件很好的事情。我还喜欢关于本地nuget消息包的提示。谢谢回答得很好,但我不会为每个消息处理程序创建单独的项目。听起来有点过早优化。当需要的时候,你可以把相关的处理程序分成不同的项目。同意——这是个好答案,我也同意每个处理程序一个项目很快就会失控。将消息程序集(或多个程序集)发布到本地nuget服务器可以消除大量消耗项目的摩擦。这对我来说是一件很好的事情。我还喜欢关于本地nuget消息包的提示。谢谢