互联网应用的架构演变之路


随着互联网的发展,网站的应用也不断扩大,从而导致系统架构不断的进行变化,从互联网早起到现在,系统架构大致经历了下面几个过程。

在这里插入图片描述

单体应用架构

所有功能都集中在一个应用中,统一开发、部署、维护。

  • 优点:开发成本、部署成本、维护成本低
  • 缺点:对于大型项目来说,项目模块紧密耦合、单点容错率低、无法针对某一个模块优化和水平扩展。

垂直应用架构

将之前的单体应用拆分成多个应用,提升效率。比如,电商系统可以拆分成电商系统、后台系统等。

  • 优点:项目拆分实现流量分担,解决并发问题,可以针对某一个模块优化和水平扩展,同时应用之间不会相互影响,提高容错率。
  • 缺点:应用相互存在又是独立的,对于相同的功能会造成一定的冗余。

分布式架构

随着业务的增加,在垂直应用中的冗余代码会越来越多。将冗余代码抽取出来单独的服务提供应用调用形成分布式架构。

  • 优点:抽取公共的功能作为服务层,提高代码复用。
  • 缺点:系统间耦合变高,调用关系错综复杂,难以维护。

SOA架构

分布式架构的缺点就是应用和服务之间调用复杂,难以维护,尤其是当服务节点越来越多的时候。SOA就是为了解决资源调度和治理的问题。

  • 优点:使用治理中心(ESB/Dubbo)解决服务间调用关系的自动调节。
  • 缺点:服务间有依赖关系,某一环节出现问题影响较大。

微服务架构

某种程度上SOA架构发展的下一步,微服务架构更加强调服务的拆分,每个服务独立部署互不影响,更加轻巧、轻量级。

  • 优点:服务独立打包部署和升级,功能划分清晰,利于扩展。
  • 缺点:成本高、复杂度高。

SOA架构&微服务架构对比

  • 微服务架构更加精细,专业的人做专业的事。
  • 微服务架构中,每个服务独立部署。
  • 微服务架构中,每个服务都是单独的数据库。
  • 微服务架构更加适合互联网敏捷开发、快速迭代版本。

分布式应用开发解决方案

Spring Cloud提供微服务开发的一站式解决方案,包含开发分布式应用微服务的必须组件,方便开发者通过Spring Cloud编程模型轻松开发分布式应用服务。目前Spring Cloud生态有Spring Cloud Netflix、Spring Cloud Alibaba两套框架。

猜你喜欢

转载自blog.csdn.net/qq_28314431/article/details/128644137