技术栈全景图
一、当前最流行的 Spring Cloud 微服务技术栈
┌──────────────────────┐
│ 前端 / 客户端 │
│ Vue3 / React / 小程序 │
└──────────┬───────────┘
│ HTTPS
▼
┌──────────────────────┐
│ Nginx / SLB (负载均衡)│
└──────────┬───────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Spring Cloud 微服务技术栈 │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 服务治理层 │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │ │
│ │ │ Nacos 2.x │ │ Spring Cloud │ │ LoadBalancer│ │ │
│ │ │ (注册+配置) │ │ Gateway (网关) │ │ (负载均衡) │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ • 服务发现 │ │ • 路由转发 │ │ • Ribbon → │ │ │
│ │ │ • 配置管理 │ │ • 鉴权限流 │ │ • 轮询/加权 │ │ │
│ │ │ • 健康检查 │ │ • 灰度发布 │ │ • 响应式 │ │ │
│ │ └──────────────────┘ └──────────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 服务调用层 │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │ │
│ │ │ OpenFeign │ │ Spring Cloud │ │ gRPC │ │ │
│ │ │ (声明式HTTP) │ │ Stream (消息) │ │ (高性能RPC) │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ • 注解驱动 │ │ • 消息抽象 │ │ • HTTP/2 │ │ │
│ │ │ • 动态代理 │ │ • 函数式编程 │ │ • Protobuf │ │ │
│ │ │ • 负载均衡 │ │ • 绑定器切换 │ │ • 双向流 │ │ │
│ │ │ • 拦截器 │ │ │ │ │ │ │
│ │ └──────────────────┘ └──────────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 弹性容错层 │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │ │
│ │ │ Sentinel │ │ Resilience4j │ │ Seata │ │ │
│ │ │ (流量治理) │ │ (容错框架) │ │ (分布式事务) │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ • 流量控制 │ │ • 熔断器 │ │ • AT 模式 │ │ │
│ │ │ • 熔断降级 │ │ • 重试 │ │ • TCC 模式 │ │ │
│ │ │ • 系统保护 │ │ • 限流 │ │ • Saga 模式 │ │ │
│ │ └──────────────────┘ └──────────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ 可观测性层 │ │
│ │ │ │
│ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │ │
│ │ │ Micrometer │ │ SkyWalking │ │ Prometheus │ │ │
│ │ │ Tracing (Sleuth) │ │ (APM) │ │ + Grafana │ │ │
│ │ │ │ │ │ │ (监控告警) │ │ │
│ │ │ • TraceId 透传 │ │ • Java Agent │ │ • 指标采集 │ │ │
│ │ │ • Span 管理 │ │ • 调用链可视化 │ │ • 面板展示 │ │ │
│ │ │ • 日志关联 │ │ • 服务拓扑图 │ │ • 告警通知 │ │ │
│ │ └──────────────────┘ └──────────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘二、技术栈选型对比
注册中心
| 维度 | Nacos | Eureka | Consul | Zookeeper |
|---|---|---|---|---|
| CAP | AP/CP 可切换 | AP | CP | CP |
| 配置中心 | 内置 | 无 | 内置 | 需额外开发 |
| 健康检查 | 心跳+主动探测 | 心跳 | 心跳+主动探测 | 心跳 |
| 一致性协议 | Distro / Raft | 无 | Raft | ZAB |
| 维护状态 | 活跃 | 停维 | 活跃 | 活跃 |
| 推荐度 | ★★★★★ | ★★ | ★★★ | ★★★ |
网关
| 维度 | Spring Cloud Gateway | Kong | APISIX | Zuul |
|---|---|---|---|---|
| 性能 | 高(Netty) | 高(OpenResty) | 高(OpenResty) | 低(Servlet) |
| 语言 | Java | Lua | Lua | Java |
| 插件生态 | 一般 | 丰富 | 丰富 | 一般 |
| Spring 集成 | 原生 | 需配置 | 需配置 | 原生 |
| 推荐度 | ★★★★★ | ★★★★ | ★★★★ | ★★ |
熔断限流
| 维度 | Sentinel | Resilience4j | Hystrix |
|---|---|---|---|
| 流量控制 | 极强(QPS/线程/热点/链路) | 有限 | 无 |
| 熔断策略 | 3 种(慢调用/异常比例/异常数) | 2 种 | 1 种 |
| 控制台 | 可视化 | 无 | Dashboard |
| 规则动态修改 | 支持 | 有限 | 有限 |
| 维护状态 | 活跃 | 活跃 | 停维 |
| 推荐度 | ★★★★★ | ★★★★ | ★ |
消息队列
| 维度 | RocketMQ | Kafka | RabbitMQ |
|---|---|---|---|
| 吞吐量 | 高 | 极高 | 中等 |
| 事务消息 | 原生支持 | 需额外实现 | 需额外实现 |
| 顺序消息 | 原生支持 | 分区内有序 | 需额外配置 |
| 延时消息 | 18 个级别 | 无 | 插件 |
| 适用场景 | 电商、金融 | 日志、流处理 | 通用业务 |
| 推荐度 | ★★★★★(电商) | ★★★★★(流处理) | ★★★★(通用) |
三、推荐组合方案
方案一:Spring Cloud Alibaba 全家桶(推荐)
Nacos + Gateway + OpenFeign + LoadBalancer + Sentinel + RocketMQ + Seata + SkyWalking优势: 阿里生产验证,中文社区活跃,组件功能互补,几乎覆盖所有场景。 适用: 新项目,中小型到大型电商、金融等业务场景。
方案二:Spring Cloud Netflix 经典组合(存量项目)
Eureka + Zuul + Ribbon + Feign + Hystrix + Sleuth + Zipkin优势: 经典方案,资料丰富,大量存量项目使用。 劣势: 多个组件已停维,不推荐新项目使用。
方案三:Service Mesh 混合方案(超大规模)
Istio + Nacos + Sentinel + Gateway + Feign优势: 流量治理下沉到 Sidecar,业务代码无侵入。 适用: 100+ 微服务,多语言技术栈,需要细粒度流量治理。
四、技术栈演进路线
阶段一:单体应用
Spring Boot + MySQL + Redis
↓
阶段二:初步微服务化
Spring Boot + Nacos + Gateway + OpenFeign + LoadBalancer
↓
阶段三:完善治理体系
+ Sentinel (流量治理) + Sleuth/SkyWalking (链路追踪) + RocketMQ (异步解耦)
↓
阶段四:生产级高可用
+ Seata (分布式事务) + K8s (容器编排) + Prometheus/Grafana (监控告警)
↓
阶段五:服务网格
+ Istio (Service Mesh) + 多活架构