在讲能不能替换之前,我们先看看 Spring Cloud 是什么 ?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
我们可以看出,Spring Cloud 是一套微服务框架,和部署形态无关,事实上,你的整个Spring Cloud 是完全可以部署到Kubernetes中。
然后我们再看下, sidecar+kubernetes 架构 是否就是Istio之类的Service Mesh ?
我觉得包括Service Mesh,但绝不仅于此。sidecar+kubernetes 架构 真正应该是mecha架构。如下图:
![](https://img.jasve.com/2025-2/3f9b8b580befc972840c5a10d0610868.webp)
通过上图我们可以清晰看出,未来的sidecar 不仅仅包括envoy,同时包括其他公共业务逻辑的模块,例如dapr。
那么接下我们看看能不能完全取代?
首先我们看看Istio等Service Mesh能解决什么?
通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio,这包括:
我们可以看出,Service Mesh 已经提供了大部分Spring Cloud 提供的功能了。诸如服务发现注册、配置中心、负载均衡、断路器、数据监控等。
但是消息总线之类的偏业务的功能,Service Mesh 并不能解决。此时Dapr出场了。
Dapr是一个开源,可移植的,事件驱动的运行时,使开发人员可以轻松构建在云和边缘上运行的弹性,微服务架构的无状态和有状态应用程序。 Dapr包含所有编程语言和开发人员框架,并简化了构建应用程序(例如电子商务示例)的过程。
![](https://img.jasve.com/2025-2/8482aa3c2fc5e88db4189e8f67fe3515.webp)
Dapr 提供了一些常用的业务相关的功能块。比如:
看到这里,我们基本上可以得出,Dapr 侧重于业务功能。
所以 sidecar+kubernetes 形态的mecha架构完全可以取代Spring Cloud。 而且具备更多优势: