hooyantsing's Blog

P01 微服务和 Spring Cloud Alibaba

字数统计: 930阅读时长: 3 min
2022/06/15

视频源:小破站讲的最好SpringCloudAlibaba入门教程,保姆级教程通俗易懂

1. 微服务和 Spring Cloud Alibaba 介绍

1.1 架构的演变过程

image-20220615173506278

1.1.1 单体应用架构
  • 优点:
    • 项目架构简单,开发成本低;
    • 项目部署在一个节点上,维护方便;
  • 缺点:
    • 全部功能集成在一个工程中,对于大型项目来讲不易开发和维护;
    • 项目模块之间紧密耦合,单点容错率低;
    • 无法针对不同模块进行针对性优化和水平扩展。
1.1.2 垂直应用架构
  • 优点:
    • 系统拆分实现了流量分担,解决了并发问题,而且可以针对不同莫款进行优化和水平扩展;
    • 一个系统的问题不会影响到其它系统,提高容错率;
  • 缺点:
    • 系统之间相互独立,无法进行相互调用;
    • 系统之间相互独立,会有重复的开发任务。
1.1.3 分布式架构(互联网公司刚起步推荐架构)
  • 优点:
    • 抽取公共的功能为服务层,提高代码复用性;
  • 缺点:
    • 系统间耦合度变高,调用关系错综复杂,难以维护。
1.1.4 SOA 架构
  • 优点:
    • 使用治理中心(ESB\Dubbo)解决了服务间调用关系的自动调节;
  • 缺点:
    • 服务间会有依赖关系,一旦某个环节出错会影响较大(服务雪崩);
    • 服务关系复杂,运维、测试部署困难。
1.1.5 微服务架构

微服务架构比 SOA 架构粒度会更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务与服务之间互不影响,微服务架构中,每个服务必须独立部署,微服务架构也更加轻巧、轻量级。

SOA 架构中可能数据库存储会发生共享,微服务强调独立每个服务都是单独数据库,保证每个服务与服务之间互不影响。

项目体现特征微服务架构比 SOA 架构更加适合互联网公司敏捷开发、快速迭代版本,因为粒度非常精细。

  • 优点:
    • 服务原子化拆分,独立打包、部署和升级、保证每个微服务清晰的任务划分,利于扩展;
    • 微服务之间采用 Restful 等轻量级 http 协议互相调用;
  • 缺点:
    • 分布式系统开发的技术成本高(容错、分布式事务等);
    • 复杂性更高。各个微服务进行分布式独立部署,当进行模块调用的时候,分布式会变得更加麻烦。
1.2.1 微服务架构的常见问题
  • 这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])Nacos
  • 这么多小服务,他们之间如何通讯?(Restful RPC Dubbo Feign)
    • 迭代:以前[httpclient(“url”,args)] -> SpringBoot[restTemplate(“url”,args)] -> Feign
  • 这么多小服务,客户端怎么访问他们?(网关)Gateway
  • 这么多小服务,一旦出现问题了,应该如何自处理?(容错)Sentinel
  • 这么多小服务,一点出现问题了,应该如何排错?(链路追踪)Skywalking

image-20220615193525142

image-20220615193634146

1.2.2 常见微服务架构
  1. Dobbo:Zookeeper + Dubbo + SpringMVC/SpringBoot
    • 配套通信方式:rpc
    • 注册中心:zookeeper/redis
    • 配置中心:diamond
  2. SpringCloud:全家桶 + 轻松嵌入第三方组件(Netfilx)
    • 配套通信方式:http restful
    • 注册中心:eruka/consul
    • 配置中心:config
    • 断路器:hystrix
    • 网关:zuul
    • 分布式追踪系统:sleuth + zipkin
  3. SpringCloud Alibaba

SpringCloud 以微服务为核心的分布式系统构建标准

image-20220615194542436

4. Spring Cloud 各套实现对比

image-20220616142258849

CATALOG
  1. 1. 1. 微服务和 Spring Cloud Alibaba 介绍
    1. 1.1. 1.1 架构的演变过程
      1. 1.1.1. 1.1.1 单体应用架构
      2. 1.1.2. 1.1.2 垂直应用架构
      3. 1.1.3. 1.1.3 分布式架构(互联网公司刚起步推荐架构)
      4. 1.1.4. 1.1.4 SOA 架构
      5. 1.1.5. 1.1.5 微服务架构
      6. 1.1.6. 1.2.1 微服务架构的常见问题
      7. 1.1.7. 1.2.2 常见微服务架构
  2. 2. 4. Spring Cloud 各套实现对比