很多公司由于历史原因,都会有自研的RPC框架 。
尤其是在2015-2017期间 , Spring Cloud刚刚面世,Dubbo停止维护多年 , 很多公司在设计自己的RPC框架时,都会基于Spring Cloud做二次开发 。并且会大量使用Spring Cloud Netflix相关的模块与代码 。
【SpringCloud怎么迈向云原生?】因此,我们去梳理一下Spring Cloud的前世今生,以及未来云原生发展的趋势,可以给这些RPC框架的演进带来一些启发 。
1、Spring Cloud的历史Spring Cloud 自 2015 年 3 月推出之后 , 很快就在 Java 微服务生态中,成为开发人员的首选技术栈 。

文章插图
Spring Cloud 在 Spring Boot 的基础上,保留 Java 开发习惯,加入分布式特性,提供了一系列通用工具来帮助开发者在分布式系统里快速构建一些常见模式 , 现在已成为使用范围最广的微服务架构之一 。
Spring Cloud提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、集群状态管理等组件 。最重要的是,跟Spring Boot框架一起使用的话,会让你开发微服务架构非常方便 。
Spring Cloud本身不是新的框架,它是一系列框架的有机组合,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发 。
注意,并非所有组件都由Spring提供,Netflix扮演了重要的角色 。注册中心Eureka、熔断器Hystrix、负载均衡组件Ribbon、网关Zuul等重要组件均由Netflix提供,主要贡献来自 Netflix OSS 。
2、Spring Cloud的现在由于Netflix在开源投入上的策略调整,Eureka、Hystrix、Ribbon 相继宣布停止维护,社区上人心惶惶,因为当时绝大部分开发者认为 Spring Cloud = Spring Cloud Netflix 。
但实际上 Spring Cloud 是一套规范,这套规范并不是只有 Netflix OSS,还有 Spring Cloud Alibaba,Spring Cloud Zookeeper,Spring Cloud Consul,Spring Cloud Kubernetes 这些实现,最近腾讯也开源了Spring Cloud Tencent(暂时还没有进入Spring Cloud 官方社区) 。
2.1 Spring Cloud AlibabaSpring Cloud Alibaba(后面简称SCA) 是目前国内Spring Cloud最活跃、组件最多 , 也是最容易替代 Spring Cloud Netflix 的实现 。
下面张图对相关功能和组件的映射关系表达得比较清晰了 。

文章插图
(来源:https://www.oschina.net/question/4489239_2321891)
我们可以看到,SCA对Spring Cloud的实现,采用了几个目前非常热门的项目 , 基本上可以做到快速接入 , 稳定使用 。

文章插图
不过这里有个地方需要注意 , 从SCA 的2.2.7-RELEASE版本后,不再支持dubbo的快速接入了,而是直接使用了Spring Cloud的原生调用方式(OpenFeign和RestTemplate) 。
为什么呢?查了下issue找到了社区相关讨论https://github.com/alibaba/spring-cloud-alibaba/issues/2398 。
总结起来有几点原因:
- SCA的Spring Cloud Dubbo这个模块存在一些问题,且没有人力继续维护了,考虑到用的人不多,所以就不再继续维护 。
- SCA的目的是为了将阿里云相关组件能快速替换SpringCloud相关模块而诞生的,比如nacos、sentinal、seata、rocketMQ 。
- Dubbo自身生态非常成熟 , 一般不需要跟Spring Cloud混用 , 一般是二选一 。尤其是Dubbo 3.x后支持了Mesh,通过rest方式调用完全可以自成体系 。

推荐阅读
- 羊了个羊第四关怎么通关
- 英雄联盟手游超武乾坤虹影劫怎么获取
- 金铲铲之战花好月圆传送门怎么获取
- 哈利波特:魔法觉醒魔咒尖子生罗恩回响单排卡组怎么组合
- 光与夜之恋晴空漫野谈活动怎么玩
- 云顶之弈黯灵四炮阵容怎么搭配
- 华为freebuds4i使用方法_华为freebuds4i怎么重新配对
- 迪奥999口红怎么分辨是不是正品?迪奥999真假鉴别
- 2021我的世界末影龙蛋怎么孵化(我的世界末影龙蛋要怎么孵)
- 末影龙蛋怎么孵化(末影龙)