详解Spring Cloud版本问题

news2024/11/28 2:34:45

目录

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL脏读、不可重复读、幻读的区别与注意事项

目录 一、引入二、事务并发执行会遇到的问题1. 区别2. 注意 三、隔离级别四、参考资料 一、引入 MySQL的架构是 C/S 架构(即 客户端/服务器 架构),一个服务器可能有多个客户端与之相连接,每个连接称之为会话(Session&…

chatgpt赋能python:Python去掉分隔符:优化SEO效果的一种方法

Python去掉分隔符:优化SEO效果的一种方法 在现代的数字化时代,SEO已经成为了许多企业、个人和网站运营者最为关心的问题之一。SEO指的是搜索引擎优化,通过各种技术手段和优化方式,提高网站在搜索引擎结果页面上显示的排名。Pytho…

PageHelper使用

PageHelper &#xff1a; mybatis中的分页插件 文档 &#xff1a; https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md springboot使用PageHelper <dependency><groupId>com.github.pagehelper</groupId><artifactId…

利用DocsGPT快速搭建一个问答式的文档检索服务

docsGPT 示例 基于企业内部独有的知识库&#xff0c;进行智能的客服问答&#xff0c;毫无疑问是 ChatGPT 出圈以后&#xff0c;所有公司想要融入 ChatGPT 技术时的第一反应。可惜 ChatGPT 实际上是一个基于大语言模型实现的&#xff0c;包括很多其他功能的&#xff0c;完整的聊…

电力电子技术的论文

电力电子技术的论文范文一&#xff1a;Matlab电力电子技术应用 【文章摘要】信息技术的快速发展推动许多学科进一步完善&#xff0c;以电力电子技术为例&#xff0c;其本身具有较强的理论性、实践性等特征&#xff0c;涉及的波形图、电路图也较多&#xff0c;相关设计人员需掌握…

Hitcon 2016 SleepyHolder-fastbin_dup_consolidate.c

参考/题目下载&#xff1a; https://github.com/mehQQ/public_writeup/tree/master/hitcon2016/SleepyHolder https://blog.csdn.net/seaaseesa/article/details/105856878 1&#xff0c;三联 保护:基本都开了 功能&#xff1a; 0、唤醒功能&#xff1b; 1、创建-secret&#…

华为OD机试真题 Java 实现【猴子爬山】【2023 B卷 100分】,附详细解题思路

一、题目描述 一天一只顽猴想去从山脚爬到山顶&#xff0c;途中经过一个有个N个台阶的阶梯&#xff0c;但是这猴子有一个习惯&#xff1a; 每一次只能跳1步或跳3步&#xff0c;试问猴子通过这个阶梯有多少种不同的跳跃方式&#xff1f; 二、输入描述 输入只有一个整数N&…

Custom Frames插件:内置Web应用 | Obsidian实践

今天跟大家分享一个Obsidian插件&#xff1a;Custom Frames。 这个插件的美妙之处在于&#xff0c;可以将一个Obsidian外部的Web应用&#xff0c;内置到Obsidian内部来操作和使用。 这么说可能是有点儿抽象&#xff0c;就比方说吧&#xff0c;微信读书有个网页版&#xff08;后…

嵌入式开发——文件系统部署rz、sz命令

1、rz、sz命令源码下载 下载网址&#xff1a;https://ohse.de/uwe/software/lrzsz.html 2、源码编译 tar -zxvf lrzsz-0.12.20.tar.gz cd lrzsz-0.12.20 ./configure make CCaarch64-mix410-linux-gcc #指定芯片平台的交叉编译链3、源码编译遇到的问题 3.1、报错打印 (1)报错…

绝地求生可以这样制作 (Python 版)

一、概述 1.1 效果 总的来说&#xff0c;这种方式是通过图像识别来完成的&#xff0c;不侵入游戏&#xff0c;不读取内存&#xff0c;安全不被检测。 1.2 前置知识 游戏中有各种不同的枪械&#xff0c;不同的枪械后坐力不一样&#xff0c;射速也不同。相同的枪械&#xff0c;…

【Java】Java(四十八):日志

文章目录 1. 概述2. 日志体系结构和Log4J3. 入门案例4. 配置文件详解 1. 概述 程序中的日志可以用来记录程序在运行的时候点点滴滴。并可以进行永久存储。 日志与输出语句的区别 2. 日志体系结构和Log4J 体系结构 Log4J Log4j是Apache的一个开源项目。 通过使用Log4j&#…

vue实现导航栏功能的方法

在 Vue中实现导航栏功能&#xff0c;我们可以将导航栏作为一个单独的组件来实现。这样可以方便我们进行修改、定制&#xff0c;并有多种方式进行添加导航栏&#xff0c;如使用 Vue的 document. position属性或者使用vue-dialog-position属性来添加导航栏。在此&#xff0c;我们…

mac os终于成功安装MySQL

目录 PART 1. 下载MySQL PART 2. 安装MySQL PART 3. 启动MySQL 大家好&#xff0c;我是tin&#xff0c;一个热爱技术喜欢折腾的开发&#xff0c;欢迎阅读我的重磅肝文&#xff1a; 1. 面试官&#xff1a;你给我讲一讲&#xff0c;Dubbo暴力停机&#xff0c;消费者是如何感知…

机器学习知识经验分享之六:R语言绘图之小提琴图绘制

python语言用于深度学习较为广泛&#xff0c;R语言用于机器学习领域中的数据预测和数据处理算法较多&#xff0c;后续将更多分享机器学习数据预测相关知识的分享&#xff0c;有需要的朋友可持续关注&#xff0c;有疑问可以关注后私信留言。 文章目录 一、小提琴图 二、相关代…

node、node-sass和sass-loader版本错误问题 this.getOptions is not a function

安装node-sass和sass-loader后&#xff0c;使用npm run dev启动项目时一直报错。网上查明原因&#xff0c;是因为版本问题&#xff0c;但是修改node-sass和sass-loader版本后&#xff0c;又提示说node版本不兼容&#xff0c;我的node版本是18。随后又尝试了很多node-sass和sass…

【STM32CubeMX项目】STM32DHT11工程文件

前言 在我的另一篇里文章里已经介绍过DHT11的时序理论了&#xff0c;这里介绍下&#xff0c;我写DHT11的数据获取的思路和调用。程序验证后&#xff0c;发现下述问题&#xff0c;暂时解决不了&#xff0c;但是还是会把个人的代码流程&#xff0c;函数的编写思路和工程写下&…

蔚来的痛苦远未结束

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结 &#xff08;1&#xff09;蔚来5月份的交付数据没有计入ES6的订单情况 &#xff08;2&#xff09;蔚来现在面临的主要问题是销售成本在不断增长&#xff0c;残酷的事实是&#xff0c;蔚来资产负债表上的现金只能维持5…

在Windows中安装极狐GitLab Runner

官方文档&#xff1a;https://docs.gitlab.cn/runner/install/windows.html 在Windows中安装极狐GitLab Runner 1.下载GitLab Runner二进制文件&#xff0c;新建一个文件夹&#xff08;不要有中文&#xff09;&#xff0c;并将二进制文件放入该文件夹&#xff0c;重命名为“git…

django连接mysql

1.0app目录 1.pip 安装mysqlclient 2.在cmd里面新建一个django项目 3.在cmd里面新建一个app名字叫blogg 4.创建自己的数据库 django连接mysql 首建项目maneage里面setting的mysql配置 6.setting里面的installed_apps里面加上app的配置 7.app里面models模板的设置…

平面图学习

空调管道的设计&#xff1a;某景区有6个景点&#xff0c;位置分布如下图。 分析者认为&#xff1a;(1) A1与A4&#xff0c; (2) A2与A5&#xff0c; (3) A3与A6间人流较少&#xff0c;其它景点之间人流量大&#xff0c;必须投资铺设空调管道&#xff0c;但要求空调管道间不能交…