SpringCloud01-初识微服务SpringCloud
一、微服务技术栈一览



| 模块 | 关键内容 | 详细知识点 |
|---|---|---|
| 微服务治理 | 服务注册与调用、配置管理、网关 | Eureka、Nacos、OpenFeign、Gateway、配置中心 Nacos |
| Docker | 容器化与部署 | Docker 原理、Docker 使用、Dockerfile、Docker Compose |
| 异步通信 | 系统解耦、削峰 | 同步/异步、MQ 技术模型、Spring AMQP、消费者限流 |
| 分布式搜索 | 大数据搜索引擎 | DSL 语法、HighLevelClient、拼音搜索、自动补全、竞价排序、地理搜索、聚合统计、分片集群 |
| 模块 | 关键内容 | 详细知识点 |
|---|---|---|
| 微服务保护 | 系统稳定性保障 | 流量控制、系统保护、熔断降级、服务授权 |
| 分布式事务 | 数据一致性保障 | XA 模式、TCC 模式、AT 模式、Saga 模式 |
| 分布式缓存 | 高性能缓存架构 | 数据持久化、Redis 主从集群、哨兵机制、Redis 分片集群 |
| 多级缓存 | 缓存加速方案 | 多级缓存分层、Nginx 缓存、Redis 缓存、Canal 数据同步 |
| 可靠消息服务 | 消息不丢失、不重复、不积压 | 消息三方确认、惰性队列、延迟队列、镜像集群、仲裁队列 |
| 模块 | 关键内容 | 详细知识点 |
|---|---|---|
| Nacos 源码 | 服务注册与发现机制 | 服务发现原理、服务注册原理、心跳机制、Nacos vs Eureka |
| Sentinel 源码 | 流控/熔断算法原理 | 滑动窗口算法、令牌桶算法、漏桶算法 |
| Redis 热点问题 | 高并发缓存安全 | 分布式锁、缓存穿透、缓存击穿、缓存雪崩 |
二、认识微服务
2-1、单体架构

2-2、分布式架构


目前,解决以上为题的方案:微服务。

2-3、小结

微服务,就是分布式架构的最佳实践方案。
三、主流的微服务技术

3-1、每个组件是什么?
① 服务网关
所有外部用户访问系统,要先经过它。
就像 公司前台:
-
用户不会直接接触内部服务
-
网关会根据请求分配任务到具体服务
-
还能做 权限检查、限流、防攻击
关键词:统一入口、过滤、转发、保护系统
② 服务集群
系统拆成很多服务,并且每个服务可能会启动多个实例。
就像有很多工人团队:
-
用户服务(处理登录、信息)
-
订单服务(负责下单)
-
库存服务(减少库存)
-
支付服务(处理付款)
而且每个服务都有多台机器 → 防止崩掉、支持高并发
这叫 集群。
关键词:多实例、负载均衡、扩容
③ 注册中心
每个服务启动时,必须来这里登记「我是谁,我在哪」
其他服务通过它找到彼此。
就像 公司通讯录/员工电话本:
| 服务 | 地址 | 是否可用 |
|---|---|---|
| 用户服务 | 192.168.1.10:8080 | 在线 |
| 支付服务 | 192.168.1.11:9000 | 在线 |
代表技术:Eureka、Nacos、Consul
④ 配置中心
用来统一管理配置,不要让每个服务自己保存配置文件。
就像 公司制度手册:
-
数据库账号、密码
-
日志配置
-
开关控制(比如开启活动模式)
只需改一个地方,所有服务都能自动更新,不用逐个修改。
代表技术:Nacos Config、Apollo、Spring Cloud Config
3-2、微服务技术对比

3-3、企业需求

四、初识SpringCloud
4-1、SpringCloud 与 SpringBoot

SpringBoot 专注于一个服务怎么写得简单好用;
SpringCloud 专注于很多服务之间怎么协同工作。
4-2、版本兼容关系

SpringCloud 依赖 SpringBoot,版本要匹配才能正常使用。不能乱搭配。
如果你是初学者:
推荐:SpringBoot 2.6.13 + SpringCloud 2021.0.5(稳定好用,教程多)。
如果你用 JDK17:
选择:SpringBoot 3.x + SpringCloud 2022.x(最新技术栈)。
