SpringCloud学习--基础--1.1--微服务--系统架构演变

SpringCloud学习–基础–1.1–微服务–系统架构演变


1、集中式架构

集中式架构
在这里插入图片描述

1.1、优点

  1. 系统开发速度快
  2. 维护成本低
  3. 适用于并发要求较低的系统

1.2、缺点

  1. 代码耦合度高,后期维护困难
  2. 无法针对不同模块进行针对性优化
  3. 无法水平扩展
  4. 单点容错率低,并发能力差

2、垂直拆分

在这里插入图片描述

2.1、优点

  1. 系统拆分实现了流量分担,解决了并发问题
  2. 可以针对不同模块进行优化
  3. 方便水平扩展,负载均衡,容错率提高

2.2、缺点

  1. 系统间相互独立,会有很多重复开发工作,影响开发效率

3、分布式服务

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心.

在这里插入图片描述

3.1、优点

  1. 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率

3.2、缺点

  1. 系统间耦合度变高,调用关系错综复杂,难以维护

4、SOA:面向服务架构

在这里插入图片描述

  1. 它是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。
  2. 一个服务通常以独立的形式存在与操作系统进程中,各个服务之间通过网络调用。

4.1、缺点

  1. 每个供应商提供的ESB产品有偏差,自身实现较为复杂;
  2. 应用服务粒度较大,ESB集成整合所有服务和协议、数据转换使得运维、测试部署困难。
  3. 所有服务都通过一个通路通信,直接降低了通信速度。

5、微服务架构

微服务架构是使用一套小服务来开发单个应用的方式或途径,每个服务基于单一业务能力构建,运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,并能够通过自动化部署机制来独立部署。

5.1、微服务结构图

在这里插入图片描述

5.1.1、API Gateway网关

  1. 是一个服务器,是系统的唯一入口。
  2. 为每个客户端提供一个定制的API。
  3. API网关核心是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。
    1. 缓存
    2. 身份验证
    3. 监控
    4. 负载均衡
    5. 请求分片与管理
    6. 静态响应处理

5.1.2、服务端

  1. 通过服务注册中心进行服务注册和管理。

5.2、微服务架构特点

  1. 单一职责

    1. 微服务中每一个服务都对应唯一的业务能力,做到单一职责
    1. 微服务的服务拆分粒度很小
    2. 例如一个用户管理就可以作为一个服务。
  2. 面向服务

    1. 面向服务是说每个服务都要对外暴露Rest风格服务接口API。
    2. 不关心服务的技术实现,做到与平台和语言无关,
    3. 不限定用什么技术实现,只要提供Rest的接口即可。
  3. 自治:自治是说服务间互相独立,互不干扰

    1. 团队独立:每个服务都是一个独立的开发团队,人数不能过多。
    2. 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉
    3. 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动端开发不同接口。
    4. 数据库分离:每个服务都使用自己的数据源
    5. 部署独立:
      1. 服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。
      2. 每个服务都是独立的组件,可复用,可替换,降低耦合,易维护

5.3、与ESB的区别

  1. 微服务架构与SOA都是对系统进行拆分;
  2. 微服务架构基于SOA思想,可以把微服务当做去除了ESB的SOA。
  3. ESB是SOA架构中的中心总线,设计图形应该是星形的,而微服务是去中心化的分布式软件架构。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值