主题
微服务技术栈总览(Spring Cloud Alibaba)
一句话定位:微服务 = 把单体拆成「按业务边界划分的独立服务」,靠 Nacos(注册/配置)+ OpenFeign(服务调用)+ Gateway(网关)+ Sentinel(熔断限流)+ Seata(分布式事务) 五大组件串成一套可扩展的分布式体系;Spring Cloud Alibaba 是国内微服务的事实标准栈。
组件栈地图
| 层 | 组件 | 职责 |
|---|---|---|
| 注册/配置中心 | Nacos | 服务注册发现 + 动态配置(AP 默认、可切 CP) |
| 服务调用 | OpenFeign | 声明式 HTTP 客户端(接口 + 注解 → 动态代理) |
| 负载均衡 | LoadBalancer | 客户端负载均衡(替代 Ribbon) |
| 网关 | Gateway | 统一入口、路由转发、鉴权(响应式 Netty) |
| 流量治理 | Sentinel | 限流、熔断、降级、热点保护 |
| 分布式事务 | Seata | 跨服务事务(AT 默认 / TCC / XA / SAGA) |
| 消息 | RabbitMQ | 异步解耦 |
一条请求的完整链路
客户端 → Gateway(网关路由/鉴权) → 某服务(OpenFeign 调用下游)
↓ ↓
Nacos 拉服务列表 Sentinel 限流/熔断保护
↓ ↓
下游服务(Seata 保证跨服务事务一致)学习路径(对应 Leo 素材 13 步)
系统架构演进 → SCA 概述 → 环境准备 → RPC 远程调用 → Nacos 注册中心 → LoadBalancer 负载均衡 → OpenFeign → Gateway 网关 → Nacos 配置中心 → Sentinel 限流 → Sentinel 隔离降级 → Sentinel 授权 → 规则持久化
不变量(必须成立的约束)
- 微服务的每个组件都是独立部署的独立服务,通过注册中心(Nacos)互相发现,不写死 IP。
- 服务间调用统一走 OpenFeign 声明式接口,网关是外部访问的唯一入口。
- 流量治理(Sentinel)和事务(Seata)是高并发/跨服务场景才必需,小项目别过度设计。
常见误解
- 以为微服务一定比单体好 → 拆分带来分布式事务、链路追踪、运维复杂度,业务简单时单体更合适。
- 以为注册中心就是配置中心 → 注册(服务发现)和配置(动态参数)是两件事,Nacos 恰好都做了。
关联
- 架构演进:概念卡片:系统架构演进
- 注册发现:概念卡片:Nacos服务注册与发现
- 服务调用:概念卡片:OpenFeign声明式调用
- 网关:概念卡片:Gateway网关
- 流量治理:概念卡片:Sentinel熔断限流降级
- 分布式事务:概念卡片:分布式事务与Seata