SpringCloud-笔记

[toc]

零、资料

一、微服务概述

1、微服务技术栈

image-20220407085215509

微服务技术栈

微服务是为了拆分服务,形成服务集群。

image-20220407085629748

服务集群

由于服务过多,调用关系过于复杂,因此,需要有一个注册中心,来记录服务集群的调用关系,每次调用时,只需要到注册中心去找需要调用的服务的ip就行了。

image-20220407085830021

注册中心

因为服务过多,造成配置过多,难以维护,所以需要配置中心来记录每个服务的配置。

image-20220407090105359

配置中心

为了让用户访问微服务,所以需要服务网关

image-20220407090523824

服务网关

为了加快访问,所以需要有分布式缓存

image-20220407090602824

分布式缓存和数据库集群

为方便查询,需要分布式搜索

image-20220407090705095

分布式搜索

为加快速度,需要有异步通信的消息队列

image-20220407090958828

消息队列

2、微服务架构的演变过程

2.1、单体架构

单体架构,将所有的业务功能放在一个项目中开发,打成一个包部署。

优点:架构简单,部署成本低。

缺点:高耦合

image-20220407091511932

单体架构

2.2、分布式架构

根据业务功能,对系统进行拆分,每个业务模块作为一个独立项目,每个业务模块成为一个服务

优点:低耦合,易扩展。

缺点:带来了服务治理的问题。

分布式架构需要考虑的问题(服务治理):

  • 服务拆分的粒度如何?
  • 服务集群的地址如何维护?
  • 服务与服务之间如何实现远程调用?
  • 服务健康状态如何感知?

image-20220407091836479

分布式架构

2.3、微服务架构

在总结了分布式架构的经验后,提出了微服务架构,它是一种经过良好设计的分布式架构

微服务架构的特征:

  • 单一职责:微服务的拆分粒度更小,一个业务就是一个服务,做到单一职责,避免重复开发。
  • 面向服务:对外暴露服务的业务接口。
  • 自治:团队独立、技术独立、数据独立、部署独立。
  • 隔离性强:服务做好隔离、容错、降级,避免出现级联问题。

image-20220407093125245

微服务架构

2.4、小结

image-20220407093229045

3、微服务的技术对比

国内较为出名的:SpringCloud 和 Dobbo

SpringCloudAlibaba 兼容 前两种。

image-20220407094036929

image-20220407094101325