系统架构演变详解

文章目录

    • 1、单体架构
    • 2、垂直架构
    • 3、分布式架构
    • 4、SOA架构
    • 5、微服务
    • 6、集群、分布式和微服务的区别

1、单体架构

在学习 Dubbo 之后,我们先了解一下系统架构的演变过程。

随着用户量的不断增加、业务功能的扩展逐步,系统架构变得更加完美具备了高性能、高可用、安全性等特性。

在互联网发展的早起,我们经常会在一台机器上运行所有的程序和软件。把所有软件和应用都部署在一台机器上,这样就完成一个简单系统的搭建。

系统架构演变详解_第1张图片

这种单体构架的优点:

  • 开发和部署都很简单,小型项目首选
    缺点:

  • 项目启动慢:当项目的功能较多时,项目的启动会变慢。

  • 可靠性差:当项目中某个功能出现问题时,会影响到项目的其他功能。

  • 可伸缩性差:当项目中某个功能需要扩展时,需要对整个项目进行修改然后重新部署。

  • 性能低:项目部署在一台机器上,性能会有所降低

2、垂直架构

垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构,拆分的单体架构之间互不干涉和影响
系统架构演变详解_第2张图片

垂直架构解决了单体架构存在的问题,但有产生了新的问题:

  • 重复功能太多:功能 A、B、C和D这四个功能有可能存在一个或多个相同模块。

3、分布式架构

分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用。
我们称这个独立的服务为服务提供者,调用者称服务消费者。服务消费者和服务提供者是存放在两台机器上的,所以服务消费者必须通过 RPC 调用服务提供者。

RPC(Remote Procedure Call )远程过程调用,是一种思想,有非常多的协议和技术来都实现了RPC的过程。

系统架构演变详解_第3张图片

这样分布式架构解决了垂直架构存在的问题,但有产生了新的问题:

  • 服务提供者一旦产生变更,例如IP地址修改等,那么所有服务消费者也需要更变

4、SOA架构

SOA:(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。
系统架构演变详解_第4张图片
ESB:(Enterparise Servce Bus) 企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。

以功能 A 为例:当 A 需要某个功能时, A 对 ESB 发出请求, ESB 在根据请求寻找需要调用的功能,然后找到功能的地址将 A 发出的请求转发给这个功能。

5、微服务

微服务架构是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

系统架构演变详解_第5张图片
微服务的特点:

  • 服务实现组件化:A、B和C是三个项目,在开发时就可以自由选择开发技术,不需要协调其他团队。
  • 去中心化:每个微服务都有自己私有的数据库持久化业务数据
  • 自动化部署:把应用拆分成为一个一个独立的单个服务,方便自动化部署、测试、运维

6、集群、分布式和微服务的区别

分布式是将一个业务分拆多个子业务,部署在不同的服务器上。分布式的每一个子业务,都完成不同的业务,一个子业务垮了,那这个业务就不可访问了。

集群是将同一个业务,部署在多个服务器上。分布式的每个子业务都可以做集群。集群的每一台机器上都部署了同一个业务,一台服务器垮了,其它的服务器可以顶上来。

分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

分布式是否属于微服务,微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

你可能感兴趣的:(SpringCloud,java,系统架构)