我的项目有一个后端服务(Web API)和一个前端SPA应用程序。后端服务具有位于不同.net程序集中的表示层、应用程序服务层、域层和基础架构层。域层有业务领域对象,基础设施-与外部数据和其他东西的通信,应用服务-表示层使用的一组服务,表示- Web API控制器。我认为这是非常常见的分层架构。
我们的新架构师宣布,我们将把后端移动到微服务架构,降低我们的层,并将域、应用程序服务和基础架构层划分为几个服务,并将表示层转换为前端层的后端(正如here所描述的)。在功能方面,我们将拥有移动应用程序。Sql Server数据库将暂时保留原样。
我没有微服务架构的经验,所以我的问题是:多层架构已经过时了吗?这样的架构设计会给我的应用程序带来什么好处和问题?
发布于 2017-01-25 03:59:24
微服务和分层架构有点不同。微服务架构它是关于你的应用程序是如何构造的,它有哪些组件(服务),这些服务如何相互通信,它们是如何开发和部署的,等等。
多层架构在逻辑上将应用程序分成几层,每一层都有自己的逻辑功能(表示、域等)。通常,多层架构与整体架构和服务设计相关。
根据您的描述,您不会分解您的层,您的架构师希望将逻辑拆分为不同的服务。这两种架构风格可以一起使用。例如,您可以有3个服务,每个服务都可以有表示层、域层和服务层。如果您当前在一个服务中的层足够重,那么将它们分离出来使开发和测试变得更容易是有意义的。前端风格的后端也有它的好处,特别是当你想添加一个移动应用程序的时候。
关于这个
的多层架构已经过时了吗?
不,它们都可以使用,但对于微服务来说,通常情况下,层应该比单片应用程序薄得多。
这样的架构设计能给我的应用程序带来什么好处和问题?
我建议你看看comparison between microservice and monolithic architecture风格和这个post。划分与否,你应该考虑你项目的规模和复杂性,你团队的规模。划分必须给整个应用程序带来好处,使开发变得更容易。单片应用程序有其自身的好处,并且在项目规模达到一定程度时,它可以是一个好的决定。当然,使用巨大的单片应用程序以及100个非常小的(纳米)服务是一场噩梦。
发布于 2019-02-01 03:08:56
感谢您的分享!
总而言之,单片和微服务结构各有优缺点,选择正确的选择取决于您的最后期限、开发团队以及部署后应用程序将面临的负载。
如果以下任一选项与您有关,请确保整体结构对您的应用程序来说是好的和足够的:
如果您知道在什么情况下选择微服务体系结构,那么单片体系结构与微服务体系结构的问题就更容易回答。
现在,巨石与微服务之间的选择应该更容易做出。
https://stackoverflow.com/questions/41837637
复制相似问题