首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >微服务与多层架构

微服务与多层架构
EN

Stack Overflow用户
提问于 2017-01-25 03:45:25
回答 2查看 13.3K关注 0票数 10

我的项目有一个后端服务(Web API)和一个前端SPA应用程序。后端服务具有位于不同.net程序集中的表示层、应用程序服务层、域层和基础架构层。域层有业务领域对象,基础设施-与外部数据和其他东西的通信,应用服务-表示层使用的一组服务,表示- Web API控制器。我认为这是非常常见的分层架构。

我们的新架构师宣布,我们将把后端移动到微服务架构,降低我们的层,并将域、应用程序服务和基础架构层划分为几个服务,并将表示层转换为前端层的后端(正如here所描述的)。在功能方面,我们将拥有移动应用程序。Sql Server数据库将暂时保留原样。

我没有微服务架构的经验,所以我的问题是:多层架构已经过时了吗?这样的架构设计会给我的应用程序带来什么好处和问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-25 03:59:24

微服务和分层架构有点不同。微服务架构它是关于你的应用程序是如何构造的,它有哪些组件(服务),这些服务如何相互通信,它们是如何开发和部署的,等等。

多层架构在逻辑上将应用程序分成几层,每一层都有自己的逻辑功能(表示、域等)。通常,多层架构与整体架构和服务设计相关。

根据您的描述,您不会分解您的层,您的架构师希望将逻辑拆分为不同的服务。这两种架构风格可以一起使用。例如,您可以有3个服务,每个服务都可以有表示层、域层和服务层。如果您当前在一个服务中的层足够重,那么将它们分离出来使开发和测试变得更容易是有意义的。前端风格的后端也有它的好处,特别是当你想添加一个移动应用程序的时候。

关于这个

的多层架构已经过时了吗?

不,它们都可以使用,但对于微服务来说,通常情况下,层应该比单片应用程序薄得多。

这样的架构设计能给我的应用程序带来什么好处和问题?

我建议你看看comparison between microservice and monolithic architecture风格和这个post。划分与否,你应该考虑你项目的规模和复杂性,你团队的规模。划分必须给整个应用程序带来好处,使开发变得更容易。单片应用程序有其自身的好处,并且在项目规模达到一定程度时,它可以是一个好的决定。当然,使用巨大的单片应用程序以及100个非常小的(纳米)服务是一场噩梦。

票数 23
EN

Stack Overflow用户

发布于 2019-02-01 03:08:56

感谢您的分享!

总而言之,单片和微服务结构各有优缺点,选择正确的选择取决于您的最后期限、开发团队以及部署后应用程序将面临的负载。

如果以下任一选项与您有关,请确保整体结构对您的应用程序来说是好的和足够的:

  • 小型应用程序。你的应用非常简单,在部署后不会遇到严重的负载,或者它已经在生产中,但还没有遇到任何性能问题。
  • 快速启动。你有一个新的想法或一个创业公司,应该尽快推出,因为目前它没有任何竞争对手,你的项目将有所有的机会变得成功。idea实施的最后期限很紧。有限的预算。
  • 概念验证。您希望通过为目标受众构建基本产品来检查您的想法是否可行和有用。
  • 没有使用微服务的经验。您的团队不够大,无法将人员分开来设计单独的微服务,或者您的团队没有构建这些微服务的经验。当然,开始学习和实践微服务是更好的做法,但应该成为应用程序骨架的功能并不是最好的机会。

如果您知道在什么情况下选择微服务体系结构,那么单片体系结构与微服务体系结构的问题就更容易回答。

  • Complex应用。你的应用程序足够复杂,无法集成新工具,或者它遇到了无法通过垂直扩展解决的负载问题,或者在这种情况下它是无利可图的。
  • 计划扩大和扩展应用程序。你的项目经历了稳定的负载增长,你计划集成新的工具,但当扩展问题可能与微服务appear.
  • Experience时,应用程序可能会达到临界点。您的团队中有在设计和部署微服务到生产环境方面经验丰富的开发人员,您可以肯定团队中会有一部分人在开发microservices.
  • Utopia.时支持和开发主应用程序你有足够的钱,忠诚的经理,延长的最后期限。

现在,巨石与微服务之间的选择应该更容易做出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41837637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档