Tyl*_*Day 0 soa esb nservicebus
我刚刚开始学习NServicebus(和一般的SOA)并且有一些问题和要点我需要澄清解决方案通常是如何构建的和常见的最佳实践:
该文档并未真正解释端点是什么.从我收集的内容来看,它是一个部署单元,您的服务将有一个或多个端点.它是否正确?
您正在开发的每个服务都有一个VS解决方案被认为是最佳做法吗?使用消息项目,然后是每个端点的项目,最后是与包含域层的端点共享的项目?
根据我的阅读,服务通常由单个组件组成.可以(或应该)服务中的任何组件访问同一个数据库,还是应该是每个组件一个数据库?
感谢您提供的任何澄清或见解.
我会尽力回答你的问题......
我不确定"最佳实践"一词我会考虑"最佳思维"或"范式"这个词
Q1:是的,端点是一个有效的部署过程,它消耗它的队列消息.
它不必属于单个"服务"(逻辑)(例如,在Web端点的情况下),端点可以部署一个或多个处理程序.
Q2:我会在每个逻辑域服务中使用一个解决方案(以及后来的repo).在解决方案中,我会为每个消息处理程序创建一个项目,因为在扩展时,您需要在端点之间移动处理程序,或者根据自己的端点移动处理程序在规模上.然而消息是合同,所以我会把它们放在一个解决方案中,可能是拆分命令和事件.您可以考虑使用nuget之类的东西来发布您的消息包.
问题3:"服务"是自治组件的逻辑组合,每个组件都是一个垂直的功能片段,因此它们可以共享同一个数据库,但我想说只有一个组件有权修改它自己的数据.我总是会想到当你需要扩展时会发生什么.
这有道理吗?