详解Spring Cloud版本问题

目录

1.让人头疼的多版本号体系

2.目录关系

3.为什么会有多个版本号体系


1.让人头疼的多版本号体系

由于历史原因,spring cloud分为了Alibaba和Netflix两个体系。

想要了解原因以及整个spring cloud体系的来龙去脉的同学可以去看我的另一篇文章:

SpringCloud概论__BugMan的博客-CSDN博客

知道以上前情后,我们来看看spring cloud的版本号有多乱:

打开官网首先有个总项目的版本列表:

816beaa091e24517a57a9542c842aa77.png

然后往下翻是,Netflix的spring cloud和spring boot各版本之间的适配关系:

也就是说Netflix的版本号应该是列表中那样的。

111f8a1db3964fe38ff2533f6fb63def.png

但是我们点进Netflix的项目会发现它的版本号列表是这样的:

301e09d07afd4d189354c7709412a255.png

ok,这个时候才开始入门的小伙伴就蒙蔽了,会有以下几个疑惑:

  • 既然是分成了Alibaba和Netflix两个体系,为什么spring cloud这个总项目列表还会有个版本号
  • spring boot适配的适配列表中显示的Netflix的版本号列表为什么会和点进Netflix中看见的版本号列表不一样,为什么会有两套Netflix的版本号?
  • 我要用spring cloud的时候到底该用哪一个的maven坐标?

本文会先从组件关系讲起,理清楚spring cloud的项目目录结构,然后再顺着理清楚版本号问题。

2.目录关系

首先我们需要理清楚整个spring cloud生态圈里组件之间的关系,也就是官网的目录为什么是那个样子。

要实现微服务,最核心的问题是:

  • 服务注册和发现
  • 容错

Netflix和Alibaba两个体系对以上两点给出了自己不同的实现,总的来说就是各自推出了不同的注册中心组件和容错组件。除此之外在易能力扩展上,都是通集成接入第三方组件来实现的,如网关、总线、配置中心。

有了这个认识我们再来看整个spring cloud的项目列表就不会这么晕了。

我们进入spring官网,可以看到Alibaba和Netflix两个子项目,和与他们同级的很多子项目,Alibaba和Netflix的项目下包含了自己的注册中心组件和容错组件,和Alibaba、Netflix同级的,是一些扩展的三方组件如gateway(网关)、config(配置中心)、bus(总线)等。

da26199db2d946c29b60837aaec1c894.png

3.为什么会有多个版本号体系

其实组件关系理清楚后,版本号的问题就很好明白了了。虽然由于历史原因,spring cloud分成了Alibaba和Netflix两派,但spring cloud是Netflix先做出来的,所以官网上还是以Netflix为中心来对整个spring cloud进行描述的。真正的Netflix自己推出的全家桶的版本其实就是适配列表里列出来的那些版本:

3f8f4dbefeac4469a679290b22388c73.png

我们随便点进一个版本的Netflix的全家桶,可以看到其实就是注册中心(Spring Cloud Neflix)+其它组件:

5b0fdac0d2f94b1c8f598171393bd2d0.png

 后面Netflix的spring cloud的核心研发人员离职后,公司就将自己的spring cloud贡献给了spring cloud官方社区,由官方社区来对Netflix体系的spring cloud进行迭代。所以总项目上的版本号列表是spring cloud官方社区接收Netflix体系后迭代更新出来的版本:

504a874fb18745b9b9ecf2442c5dc6c5.png

随便点进去一个版本,可以看到其实也是围绕Netflix给出的一个全家桶:

3cfa20129ade4270978f065ffadb1e51.png

然后官网上spring cloud Netflix这个子项目就只单纯的维护eureka版本:

a40200da6840464d9af609f26c3ccbf5.png

我们点进随便一个版本,可以看到,就是很单纯的eureka:

37ff52e4ccff4914ba532e1e7e57a37b.png

 至于spring cloud Alibaba,就很与世无争,就单纯的维护好自己的版本号:

0abee8c2ec214b54acee599c7c0a286c.png

维护好自己的nacos和sentinel:

90bc044f6b3846169507320c96cbebcd.png

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论
Spring Cloud是一个基于Spring Framework的开发工具包,用于构建分布式系统中的微服务架构。它提供了一系列的工具和框架,来帮助开发人员快速构建和部署微服务应用。 Spring Cloud包含了许多功能模块,其中比较重要的有服务发现、负载均衡、配置管理、服务网关等。这些模块可以通过简单的注解和配置来集成到应用中,大大简化了开发人员的工作。 服务发现模块使用了Netflix开源的Eureka作为服务注册和发现的组件,可以实现动态地注册和发现微服务。负载均衡模块利用了Ribbon实现了客户端负载均衡,可以根据不同的策略将请求分发到不同的服务实例上。 配置管理模块使用了Spring Cloud Config来实现统一的配置管理,可以将应用的配置集中管理,并且支持配置的动态刷新。服务网关模块使用了Netflix开源的Zuul来实现API网关,可以对外提供统一的入口,并且可以进行路由、过滤等操作。 除了以上的功能模块,Spring Cloud还提供了很多其他的组件和工具,如断路器模块(Hystrix)、消息总线(Spring Cloud Bus)、分布式追踪(Spring Cloud Sleuth)等,可以帮助开发人员更好地构建和管理微服务架构。 总的来说,Spring Cloud是一个非常强大的框架,可以帮助开发人员快速构建和部署分布式系统中的微服务应用。它提供了丰富的功能模块和工具,可以大大简化开发工作,并且具备良好的可扩展性和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_BugMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值