{T}

v2 升级摘要:本文在保留原 frontmatter、所有 Mermaid 图、表格、案例与术语英文对照的基础上,按 v2 标准的 6 节骨架(导言、核心方法论、关键流程、工具与实战、常见误区、进阶延展)重新组织内容;补充 Pivotal/VMware/Broadcom 收购链对 Spring 生态的影响,更新 Netflix 停维时间线至 2025 年的后 Netflix 时代,并将原参考资料内容融入进阶延展一节。

一、导言

前文介绍了混合云,以及在实际操作中常见的几种混合云模式。本文将探讨 Spring Cloud 如何解决应用层的云架构问题。

⚠️ 重要提示:这是这些内容中技术变化最大的一篇。自 2019 年至今,Spring Cloud 生态经历了颠覆性的变化——曾经的主流方案 Spring Cloud Netflix 已全面停维,整个微服务治理领域正在从 Library 模式向 Sidecar 模式(Service Mesh,服务网格)演进。本文将系统梳理这一技术变革的全貌。

对于 Spring Cloud,应该不会陌生,它跟 Spring 生态中的另一个开源项目 Spring Boot,基本上已经成为国内绝大多数公司向微服务架构转型时的首选开发框架。Spring Boot 可以支持快速开发单个微服务应用,Spring Cloud 则提供一系列的服务治理框架,比如服务注册、服务发现、动态路由、负载均衡以及熔断等等能力,可以将一个个独立的微服务作为一个整体,进行很好的管理和维护。

(注:因为 Spring Cloud 必须基于 Spring Boot 框架才能发挥它的治理能力,所以下面提到的 Spring Cloud 是默认包含了 Spring Boot 框架的。)

二、核心方法论

2.1 Spring Cloud 框架中云的影子

目前整个 Spring 生态是由 Pivotal 这家商业公司在主导,然而 Pivotal 更大的目标是要为客户提供云上的端到端的解决方案。

2025 年重要更新:Pivotal/VMware/Broadcom 收购链

  • 2019 年:VMware 收购 Pivotal(27 亿美元)
  • 2021 年:Dell 将 VMware 分拆为独立公司
  • 2023 年:Broadcom 以 610 亿美元收购 VMware
  • 2024 年:Broadcom 完成对 VMware 的整合,Pivotal/PCF/Tanzu 产品线面临战略调整

这一系列并购对 Spring 生态的影响深远——企业客户开始担忧厂商锁定(Vendor Lock-in)风险,加速了向开源替代方案的迁移。

基于这样的理念,Pivotal 打造了自己的云原生解决方案 PCF(Pivotal Cloud Foundry),包括多云和跨云平台的管理、监控、发布,以及基础的 DB、缓存和消息队列等等,一应俱全。

这个时候,Spring Cloud 除了提供微服务治理能力之外,还成为了微服务应用与云平台上各项基础设施和基础服务之间的纽带,并在其中起到了承上启下的关键作用。

至此,我们可以得出这样一个判断:Spring Cloud 不仅仅是微服务治理解决方案,它同时还是面向应用层的云架构解决方案。

2.2 重大变革:Spring Cloud Netflix 全面停维

这是本文最重要的部分。如果正在使用或计划使用 Spring Cloud Netflix,以下信息至关重要。

Spring Cloud Netflix 停维时间线

图表渲染中…

各子项目停维详情与替代方案

Netflix 组件功能停维时间官方推荐替代社区热门替代
Eureka服务注册与发现2021(维护模式)Spring Cloud Consul / NacosConsul, Nacos, ZooKeeper
Ribbon客户端负载均衡2020Spring Cloud LoadBalancerSpring Cloud LoadBalancer
Hystrix熔断/降级/限流2018.11(停止开发)Resilience4jSentinel, Resilience4j
Zuul 1.xAPI 网关2020Spring Cloud GatewaySpring Cloud Gateway, Kong, APISIX
Feign声明式 HTTP 客户端集成到 spring-cloud-openfeignOpenFeign (独立维护)OpenFeign, Retrofit, gRPC
Archaius动态配置管理随整体停维Spring Cloud Config / ApolloApollo, Nacos, Consul Config
RxJava响应式编程项目仍在活跃Project ReactorProject Reactor

为什么 Netflix 要停维? Netflix 在 2015-2016 年间开源了这些组件,当时它们运行在 AWS 上,使用的是基于 JVM 的微服务架构。但到了 2018-2019 年,Netflix 自身已经大规模迁移到:

  • Kubernetes 作为容器编排平台(替代内部原生云)
  • gRPC + Protobuf 替代 REST/JSON 进行服务间通信
  • 内部自研的 Sidecar 基础设施(早于 Istio/Envoy)
  • PRPC(Platform Runtime for Programmable Connectivity) 网络栈

换句话说,连 Netflix 自己都不再使用这些开源项目了

2.3 Service Mesh:从 Library 到 Sidecar 的模式转变

随着容器及编排技术的发展和成熟,就出现了另外一个云原生的体系,且活跃程度非常高:它就是以 Google 为首的 CNCF(Cloud Native Computing Foundation,云原生计算基金会)。

Spring Cloud 采用的是 Library 模式(SDK 模式)——每个微服务都需要引入 Spring Cloud 的库,这意味着:

Library 模式的痛点描述
语言绑定只能用于 Java/Spring 生态,其他语言需重新实现
版本耦合所有服务必须使用相同版本的 Spring Cloud
升级困难升级 Spring Cloud 需要所有服务同步升级
侵入性强业务代码与服务治理代码耦合
团队协作成本开发团队需要理解服务治理细节
资源开销不可控每个服务的治理逻辑消耗的资源累加

Service Mesh(服务网格) 将这些能力从应用代码中抽离出来,放到 Sidecar 代理 中:

图表渲染中…

2.4 CNCF 全景图与关键洞察

CNCF 设想中的云原生分层架构示意图,经过几年的发展已经演变为更加丰富的生态系统:

图表渲染中…

关键洞察:Spring Cloud vs CNCF 生态的关系

维度Spring Cloud(应用层)CNCF 生态(平台层)
抽象层次应用代码内嵌(Library)平台基础设施(Infrastructure)
目标用户Java/Spring 开发者平台工程师/SRE
治理粒度方法级/接口级Pod/Service/Namespace 级
语言绑定Java 强绑定语言无关
运维参与度开发主导运维/平台团队主导
适用规模中小规模(<500 服务)大规模(500+ 服务)

结论:两者不是替代关系,而是互补关系。 对于中小型团队,Spring Cloud Alibaba 仍然是最佳选择;对于大型企业,CNCF 生态(尤其是 Service Mesh)提供了更强的治理能力和更好的扩展性。越来越多的企业采用"Spring Cloud 做业务开发 + Service Mesh 做流量治理"的混合策略。

三、关键流程

3.1 后 Netflix 时代的微服务框架选型流程

图表渲染中…

详细对比表

维度Spring Cloud AlibabaMicronautQuarkus
开发者阿里巴巴Object Computing (OCI)Red Hat
基础框架Spring Boot自研编译时框架基于 Hibernate/CDI
核心定位Spring Cloud 的中国增强版云原生 Java(编译时优化)Kubernetes Native Java
启动速度~2-5 秒(JVM)~100-500ms(JVM)/ <50ms(Native)~200ms(JVM)/ <30ms(Native)
内存占用~200-500MB~50-150MB(JVM)/ ~20MB(Native)~80-200MB(JVM)/ ~30MB(Native)
服务注册✅ Nacos / Consul / ZooKeeper✅ Consul / Eureka / Kubernetes✅ Kubernetes Service Discovery
配置中心✅ Nacos / Apollo✅ Consul / AWS Parameter Store✅ Kubernetes ConfigMap / Apollo
熔断降级✅ Sentinel(功能强大)✅ CircuitBreaker (内置)✅ SmallRye Fault Tolerance
网关✅ Spring Cloud Gateway✅ HTTP Client Filter✅ Quarkus Gateway
分布式事务✅ Seata(阿里成熟方案)❌ 需自行集成❌ 需自行集成
消息队列✅ RocketMQ 集成✅ Kafka/RabbitMQ/Kafka Streams✅ AMQP/Kafka/Reactive Messaging
RPC 支持✅ Apache Dubbo 3.x✅ 声明式 HTTP/gRPC/GraphQL✅ RESTEasy/gRPC
Serverless 适配⚠️ 需额外适配✅ 原生支持(Micronaut Function)✅ Quarkus Funqy / Serverless
GraalVM Native Image⚠️ 实验性支持(Spring Native)✅ 一等公民✅ 一等公民(Supersonic Subatomic)
社区活跃度🟢 高(中国开发者主力)🟡 中(增长中)🟢 高(Red Hat 背书)
学习曲线低(Spring 开发者无缝上手)中(新概念需学习)中高(CDI 概念)
生产案例阿里/蚂蚁/美团/京东大量使用Netflix/Apple/BOFA 部分使用Red Hat 产品核心

如何选择?

场景推荐方案理由
现有 Spring 团队转型Spring Cloud Alibaba学习成本最低,中文文档完善
全新 Greenfield 项目 + 追求性能Micronaut 或 Quarkus启动快、内存低、Native Image 友好
Serverless/FaaS 场景Quarkus > Micronaut > SCANative Image 冷启动优势明显
需要分布式事务Spring Cloud Alibaba (Seata)Seata 是目前最成熟的分布式事务方案
Kubernetes 重度用户Quarkus 或 直接 Service Mesh与 K8s 生态深度整合
多语言微服务环境Service Mesh (Istio/Linkerd)语言无关的治理能力

3.2 Dubbo 的重生:Apache Dubbo 3.x + Dubbo Mesh

需补充说明的是,早期阿里开源的 Dubbo,其实是跟 Spring Cloud 类似的微服务框架,并且经过阿里大规模的应用实践,可以说是非常优秀的开源项目。早些年国内在选择微服务框架时,Dubbo 基本是首选,然而近年来因为开源维护不力,很早停止了版本更新,导致大量的用户流失,促使用户纷纷涌入 Spring Cloud 阵营。

然而到了 2025 年,Dubbo 已经完成了华丽的转身!

Dubbo 3.x 核心升级

能力Dubbo 2.xDubbo 3.x
通信协议单一 Dubbo 协议Triple(兼容 gRPC)+ REST + Dubbo
服务发现ZooKeeper 注册中心应用级服务发现(与 K8s Service 对齐)
路由规则条件路由/脚本路由路由规则 Mesh 化(xDS 协议适配)
云原生支持原生 Kubernetes 支持、Service Mesh 友好
多协议互通仅 Dubbo 协议gRPC/REST/Triple/Thrift 全支持
性能优秀更优(Netty4 + 协议优化)
社区状态2014-2017 停维Apache 顶级项目,活跃开发中

Dubbo Mesh 架构

Dubbo 3.x 的一个重要设计目标是 与 Service Mesh 共存

图表渲染中…

Dubbo 3 的 Proxyless Mesh 是其独特卖点——不需要部署 Sidecar 代理,通过 Dubbo SDK 直接与 Control Plane(如 Istio Pilot)通信获取配置,兼顾了性能和 Mesh 治理能力。这对于性能敏感且不想承担 Sidecar 资源开销的场景非常具有吸引力。

3.3 Spring Cloud → Service Mesh 迁移路径

如果组织正在考虑从 Spring Cloud 迁移到 Service Mesh,以下是推荐的渐进式路径:

code
Phase 1: 共存期(3-6个月)
├── 新服务采用 Service Mesh
├── Spring Cloud 服务逐步剥离治理逻辑
└── 通过 Ingress Gateway 统一入口

Phase 2: 混合过渡期(6-12个月)
├── 核心服务迁移到 Mesh
├── 保留 Spring Cloud for Legacy
└── 统一可观测性(OpenTelemetry)

Phase 3: 全面 Mesh 化(12-24个月)
├── 全部服务纳入 Mesh
├── Spring Cloud 仅保留业务框架
└── 多集群 Mesh 联邦

四、工具与实战

4.1 主流 Service Mesh 产品对比(2025)

产品SidecarControl Plane性能开销成熟度适用场景
IstioEnvoyistiod (Go)较高(~10% CPU/100MB 内存)⭐⭐⭐⭐⭐大型企业、复杂治理需求
LinkerdLinkerd2-proxy (Rust)Linkerd Control Plane (Go)极低(<1% CPU/10MB 内存)⭐⭐⭐⭐追求性能、简单易用
Consul ConnectEnvoy 内置Consul (Go)中等⭐⭐⭐已有 Consul 基础设施
Cilium Service MesheBPF (无 Sidecar 可选)Cilium Agent极低(内核级)⭐⭐⭐⭐Kubernetes 原生、高性能需求

2025 年趋势: Sidecar 模式本身也在进化——

  • Ambient Mesh(Istio 1.18+):将 Sidecar 分为 ztlb 层和 waypoint 层,减少 Sidecar 数量
  • Cilium without Sidecar:利用 eBPF 实现 Service Mesh 能力,完全无需 Sidecar
  • gRPC Mesh:基于 gRPC 的轻量级 Mesh 方案

4.2 微服务框架选型决策树

结合 2025 年技术现状,给还在纠结选型的团队一个简明的决策参考:

图表渲染中…

4.3 安全实践清单

无论选择哪种微服务框架,以下安全实践不可忽视:

安全维度关键措施工具/方案
服务间认证mTLS 双向证书Istio Automatic mTLS / SPIFFE
授权控制RBAC + ABACOPA / Kyverno / Spiffe OIDC
API 安全Schema 验证 + Rate Limitinggrpc-gateway / OAS Validator
Secret 管理外部化存储HashiCorp Vault / AWS Secrets Manager / External Secrets Operator
供应链安全SBOM + 镜像签名Syft / Cosign / Sigstore
审计日志所有操作可追溯OpenAudit / ELK Stack
网络策略最小权限开放Cilium Network Policy / Calico

五、常见误区

5.1 盲目追新:停维不等于不能使用

很多团队一听到 Netflix 组件停维就立即启动大规模迁移,但事实上:

  • 维护模式 ≠ 不可用:Eureka 等组件仍能稳定运行,只是在功能上不再演进
  • 迁移成本需评估:一次大规模迁移可能引入更多风险
  • 建议:评估业务实际需要,制定 12-24 个月的渐进式迁移计划

5.2 混淆适用规模:Spring Cloud 与 Service Mesh 不是替代关系

  • 误区:认为 Service Mesh 一定优于 Spring Cloud
  • 现实:对于中小规模团队(<50 服务),Spring Cloud Alibaba 仍是最优解;Service Mesh 带来的 Sidecar 资源开销和运维复杂度不容忽视
  • 建议:参考决策树,根据规模和团队能力选型

5.3 忽视迁移过渡期:直接全量切换

  • 误区:直接停用 Spring Cloud,全量切换到 Service Mesh
  • 现实:业务连续性风险极高,治理能力会出现短暂真空
  • 建议:采用"共存 → 混合 → 全面"三阶段渐进式迁移

5.4 过度治理:为小规模系统引入完整 Mesh

  • 误区:5-10 个微服务也上 Istio 全套
  • 现实:Sidecar 资源开销可能超过业务本身
  • 建议:小规模系统使用 Spring Cloud LoadBalancer + Resilience4j 即可

六、进阶延展

6.1 可以预见的技术发展趋势

分析可见,无论是 Spring Cloud、CNCF、云原生、还是 K8s 等等新技术或理念,究其根本,都是为了能够更快更好地支持业务需求的快速实现。从云原生的理念中分析可见,跟业务无直接关系且相对通用的技术在不断地被标准化,而且标准化层面越来越高。

图表渲染中…

技术每被标准化一层,原来繁琐低效的工作就少一些,技术标准化的层面越高,技术门槛就会变得越低。 可作个大胆的预想:或许未来真的只会有业务解决方案和业务代码。

对于技术人员来说,未来更多更迫切的能力需求将会是:如何利用好业界已有的丰富的技术产品和平台,在面对更加丰富多样且复杂的业务领域需求时,能够更加专注于寻求业界解决方案,以更好地将业务和技术连接起来。找到适合业务解决方案的技术并落地实现,而不再只是专注于技术层面的造轮子。

6.2 对运维角色的启示

对于运维来说,同样要了解技术发展趋势。虽然不会直接参与具体的业务解决方案和代码的开发,然而,如果架构师是业务架构的设计者,那么应该成为 技术架构的管理者和平台工程的构建者,从效率、成本、稳定性这几个方面来检验架构是否合理,并为架构朝着更加健康的方向发展保驾护航。这也是运维职能转型和思路转变的一个重要方向。

6.3 延伸阅读与参考资源

  • Spring 官方生态:Spring Cloud、Spring Boot、Spring Native 项目主页与官方文档
  • CNCF 全景图:Cloud Native Interactive Landscape,跟踪云原生生态演进
  • Netflix 技术博客:Netflix TechBlog,了解 Netflix 自身架构演进的真实路径
  • Service Mesh 生态:Istio、Linkerd、Cilium、Envoy 官方文档与社区最佳实践
  • Dubbo 3.x 文档:Apache Dubbo 官方网站,关注 Proxyless Mesh 与 Triple 协议演进
  • 云原生 Java:Micronaut、Quarkus 官方文档与 GraalVM Native Image 实践
  • Dapr 项目:多语言运行时与 Sidecar 模式的代表性方案

如果今天的内容对你有帮助,也欢迎你分享给身边的朋友。