Spring Cloud 2020.0.0正式发布,再见Netflix

发布于:2024-10-24 编辑:匿名 来源:网络

目录?前言版本协议?正文Spring Cloud版本管理与Spring Boot版本对应关系目前支持的版本阻止升级(不向后兼容)1.再见,什么是Netflix 组件替代 Spring Cloud LoadBalancer? Spring Cloud阿里巴巴是替代方案吗?导入的Netflix包还能正常使用吗? 2. Bootstrap上下文将不再默认激活启动方式 3. 新的配置方式 4. 其他常规升级中依然存在的问题 ?总结 分享与成长,拒绝隐藏。关注公众号【BAT的乌托邦】,并回复关键词栏目。

有Spring技术栈、中间件等小而美的原创专栏供免费学习。这篇文章已被收录。

?前言 你好,我是你的蝙蝠侠。北京时间12-22深夜,Spring Cloud .0.0版本正式发布。

.0.0 是第一个使用新版本控制方案的 Spring Cloud 版本。简单说一下版本号:在此之前,Spring Cloud 的 Release Train 名称均采用伦敦地铁车站的命名方式,如:Hoxton、Greenwich 等。

注:0.0 版本又称为 Ilford(地铁站名称) )因为这个项目在3月份才按照新规定更名。大概是为了团队内部沟通的方便吧。

你也可以理解为只是一个内部代号,方便沟通。虽然按照字母顺序排列,但仍然存在两个致命问题:对非英语国家(比如中国)非常不友好,而且无法快速理清版本号A-Z之间的关系。

如果版本号达到Z怎么办?如何继续发展?你尝尝,你仔细尝尝。 Spring团队意识到这确实是一个问题,所以他们在今年3月份做出了改变。

具体可以参考我之前写的一篇文章(强烈建议进来的大家了解一下这个规则的改变):Spring改变版本号命名规则:此举对非英语国家非常友好。注意:版本号规则变更适用于所有 Spring 技术栈,包括 Spring Framework、Spring Boot、Spring Cloud、Spring Data……言归正传。

Spring Cloud早在年初就开始了该版本的研发,并于今年4月份发布了其.0.0-M1版本(第一个里程碑版本)。直到距离年底不到10天,才被“拖住”。

“终极一招,正式RELEASE。Spring Cloud是一个基于Spring Boot构建的云计算框架。

我认为造成这种困难的主要原因有两个: Spring Boot 2.4.0版本11-12才正式发布(Spirng Framework 5.3.0版本10-27才发布) Spring Framework 5.3.0正式发布,继续工作云原生之路艰辛。 Spring Boot 2.4.0正式发布。

新的配置文件加载机制(不向后兼容)确实改变太多,研发、测试、文档编写的工作量巨大。 Spring Framework、Spring Boot、Spring Cloud 庞大的发布路线图再次验证了我的说法:你对 Spring Cloud 的了解程度来自于你对 Spring Boot 的了解程度,以及你对 Spring Boot 的了解程度。

理解来自于你对 Spring 框架的了解程度。这就是我的文章花大量文字介绍Spring Framework而不是Spring Boot的根本原因。

底层是透明的,上层可以自由使用。版本约定 Spring Framework: 5.3.2 Spring Boot: 2.4.1 Spring Cloud: .0.0 以上版本均为 SC“承载”版本 ?文中有一个有趣的现象。

在截稿前(12-23 22:00:00),官网并没有最新版本未同步,标记为版本.0.0(如图):其实官网发布了一个发布公告为早在24小时前: 并且最新的Jar包也存在于Maven中央仓库中(证明你正常导入包并使用没有问题): 其实文档层面并没有最新版本的sync,不仅官网上有,所以就不一一举例了,因为毕竟不重要。针对这种现象,请问,是不是Spring Cloud团队缺人,人手不足?你要求社会招聘吗? O(∩_∩)O哈哈~ Spring Cloud 版本管理 版本管理对于软件开发来说太重要了。

在 Spring Boot 出现之前,依赖关系和版本管理确实很混乱(即使 Spring BOM 存在),尤其是当有一个不合适的版本时,很容易就偷走你一个下午甚至一整天的时间。 Spring Cloud作为上层应用框架,必须匹配底层版本才能正常工作。

最重要的是与Spring Boot的版本号保持一致。与 Spring Boot 版本的对应 Spring Boot 的出现和流行极大地缓解了上述情况,但在使用 Spring Cloud 时,其与 Spring Boot 的版本对应关系仍然需要特别注意。

为此,我给大家总结了这张表:Release Train 发布时间 Spring Boot 版本 SC Commons version.0.x.4.x3.0.0Hoxton.2.x, 2.3.x (from SR5)2.2.xGreenwich.1 .x2.1.xFinchley.0.x2.0.xEdgware.5.x1.3.xDalston.5.x1.2.xBrixton.3.x1.1.xAngel.2.x1.0.x 说明:适用于春季文章整理了Cloud内部组件、Spring Boot、Spirng Framework、Security等庞大系统的版本对比关系。下一篇文章将会发布。

请记得收藏起来。特别提醒: spring-cloud-starter-loadbalancer 伴随 Spring Cloud Commons 2.2.0 版本才开始商用(Hoxton 版本)。

请密切关注该版本的节点,因为它取代了 Ribbon。目前支持的版本 Spring Cloud 遵循 Pivotal OSS 支持政策协议,对主要版本提供 3 年支持。

另外,Spring Cloud 的一个大版本或小版本发布后,如果存在严重的 bug 和安全问题,将会维护一段时间(6 到 12 个月不等)。特别提示:这里提到的主要版本只有3年历史。

主要版本并不常见。现在0.0版本已经发布了,是时候再次逐步淘汰它了。

现在Spring Cloud官方支持以下版本: .0版本:(支持Spring Boot 2.4.x)为主版本,计划支持到明年12月。这是继芬奇利之后的另一个主要版本。

Hoxton版本:(支持Spring Boot 2.2.x和2.3.x)作为Finchley发布系列的小版本,其定期维护将持续到6月底。从07年开始,进入特殊维护期(没有新功能,只有紧急bug修复)。

12 月底,只会发布主要错误/安全补丁。 Greenwich 版本:(支持 Spring Boot 2.1.x)维护将在 01、12 -31 停止维护 Finchley 版本:(支持 Spring Boot 2.0.x)是一个主要版本的开始,是一个较旧的版本每年都会发布版本:好吧,算了。

Spring官方推荐:尽量使用最新版本。不过,建议就是建议。

作为只使用后期大众科技的我们,看电影时只能坐在第二排甚至第三排才能感到安全。但历史的巨浪总会淘汰前排,所以还是早点准备好,免得被推到前排的时候只能裸泳。

作为一个主要版本,Spring Cloud .0带来了许多重大变化,其中一些阻塞更新(不向后兼容)是本文的最大亮点。让我们服务吧。

阻止升级(不向后兼容) 去年这个时候,Spring Cloud 宣布了其 Roadmap 中将终止的一些库/版本(在之前的文章中介绍过),其中最重要的是指 Spring Cloud Netflix 项目进入维护模式并随后计划在2020年彻底移除。Spring Cloud做出这样的决定其实是“被迫”的。

我们知道Spring Cloud一直将Netflix OSS套件作为其官方默认的一站式解决方案。当时,Netflix OSS套件希望能够与Spring Cloud划等号。

不过,Netflix 大约在同一时间宣布,其核心组件 Hystrix、Ribbon、Zuul、Archaius 等均已进入维护状态。虽然有Zuul 2.x和Archaius 2.x,但它们不向后兼容,无法平滑升级,所以几乎无法使用。

有一些模块今年以来一直处于维护状态(包括其相应的启动器,此处未列出)。出): spring-cloud-netflix-archaiusspring-cloud-netflix-hystrix-contractspring-cloud-netflix-hystrix-dashboardspring-cloud-netflix-hystrix-streamspring-cloud-netflix-hystrixspring-cloud-netflix-ribbonspring-cloud-netflix -turbine-streamspring-cloud-netflix-turbinespring-cloud-netflix-zuul1。

再见,Netflix。今天,Spring Cloud.0正式发布。

在这个大版本中,spring-cloud-netflix终于按照既定计划运行了。 。

我给大家画了一张 spring-cloud-netflix-dependency xml 文件前后版本主要差异对比图,一目了然:spring-cloud-netflix-dependency 并没有消失,它仍然存在,版本号已随大军升级至3.0。 x版本中老版本的spring-cloud-netflix-dependency管理所有Netflix组件,包括Hystrix、Ribbon、Zuul、Eureka等,从.0版本开始,它只管理Eureka(包括Server和Client)。

说明:虽然Feign原本属于Netflix,但从9.x版本开始就移交给了OpenFeign组织,因此不再包含在Netflix中。管辖范围可以用一句话概括:Spring Cloud .0.0版本彻底删除了Netflix除Eureka之外的所有组件。

至此,我们可以怀着一颗感恩的心向Netflix OSS套件说声谢谢,并和它说再见了。注:Netflix 的 Eureka 项目仍然活跃。

这个注册中心的设计相当优秀,整体性能还可以,在市场上的竞争力还是可圈可点的,所以Spring Cloud还没有放弃它。代码语言:javascript copy org.springframework.cloud spring-cloud-starter-netflix-eureka-client Netflix组件替代品Spring Cloud大幅削减Netflix OSS 套件如果失败了,那么一定有替代方案。

这是不可避免的。 Spring Cloud 团队给我们推荐了替代产品: Netflix 推荐替代品 说明 HystrixResilience4jHystrix 本身也推荐大家使用它来代替它本身 Hystrix Dashboard / TurbineMicrometer + 监控系统 说白了,把监控交给更专业的人 Spring Cloud Loadbalancer 也帮不上忙,Spring终于对Zuul采取了行动。

1Spring Cloud Gateway没办法了,Spring终于对Archaius出手了。 1Spring Boot外部化配置+Spring Cloud配置比Netflix更好、更强大。

Spring Cloud 什么是 LoadBalancer?在上述替代方案中,您可能最陌生和好奇的是 Spring Cloud Loadbalancer。曾经只是Spring Cloud孵化器中的一个小项目,一度陷入搁浅。

经过重启和发展,现已完成了自己的伟大使命,正式用于完全替代Ribbon,成为Spring Cloud负载均衡器的唯一实现。值得注意的是,Spring Cloud LoadBalancer 最早是在 Spring Cloud Commons 2.2.0 中引入的,它是在 Hoxton 发布时引入的,但它只是一个备胎/选项,Ribbon 仍然默认占据主导地位。

下图是Hoxton版本中的情况: 如图所示,负载均衡抽象LoadBalancerClient接口有两个实现,在Spring Cloud .0版本之后,BlockingLoadBalancerClient是唯一的实现。关于 spring-cloud-loadbalancer 负载均衡器的使用,官方有一个极其推荐的教程:Can Spring Cloud Obama 可以替代吗?嗯,那也没关系。

但目前还不是 Spring Cloud 官方推荐的默认方案。希望国人齐心协力,尽快把Spring Cloud阿里巴巴送出去,让外国人能用上我们中国的框架。

有问题一定要用中文提出O(∩_∩)O哈哈~。导入的Netflix包还能正常使用吗?我想升级到 Spring Cloud 的最新版本,同时保持与 Netflix 技术的向后兼容性。

虽然spring-cloud-netflix-dependencies不再包含netflix的核心组件,但是我可以手动导入包并指定版本号吗?可以正常使用吗?答:我拍拍头就给你答案,不会。由于我没有演示过,但这样使用就太变态了,所以这个解决方案应该是萌芽状态,不应该存在。

另外,这个事件也告诉我们:在使用Spring Cloud时,尽量面向其抽象编程。这样一来,即使Spring Cloud改变了底层组件(比如改变熔断器、负载均衡器)等,理论上对我们的业务不会产生影响或者影响很大。

小,全归功于它的 Spring Cloud Commons 抽象,有本质。 2. Bootstrap上下文不再默认启动。

了解原理的同学都知道Spring Cloud容器是通过Bootstrap Context启动的,对应的类是BootstrapApplicationListener。这在 .0 版本中发生了变化,新版本的 Spring Cloud 不再依赖此上下文来启动。

因此默认情况下 Bootstrap 上下文将不再启动。代码层面的变化发生在这里: 代码语言:javascript 复制 BootstrapApplicationListener: @Overridepublic void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {ConfigurableEnvironmentenvironment = event.getEnvironment();// 在方法开头添加这样的判断 if (!bootstrapEnabled (环境) && !useLegacyProcessing(环境)) {return;}...} BOOTSTRAP_ENABLED_PROPERTY = spring.cloud.bootstrap.enabledpublic static boolean bootstrapEnabled(Environment 环境) {returnenvironment.getProperty(BOOTSTRAP_ENABLED_PROPERTY, Boolean.class,假)| | MARKER_CLASS_EXISTS;}// USE_LEGACY_PROCESSING_PROPERTY = spring.config.use-legacy-processingpublic static boolean useLegacyProcessing(Environmentenvironment) {returnenvironment.getProperty(USE_LEGACY_PROCESSING_PROPERTY, Boolean.class, false);} 打开方法如果需要打开Bootstrap上下文,有两种方法可以实现此目的:设置值 spring.cloud.bootstrap.enabled=true 或 spring.config.use-legacy-processing=true。

注意:这些属性值必须放在环境中才能生效。比如可靠的办法是在系统属性、环境变量、命令行等引入一个Jar:org.springframework.cloud:spring-cloud-starter-bootstrap,然后就不需要解释什么了:有而且这个罐子里只有一个罐子。

你知道Marker类的功能了。这里就不做过多解释了:手动打开Bootstrap上下文证明你已经退回到旧的加载SC的方式了,所以就按照旧的方式去做吧。

3.受益于新的配置方法 Spring Boot 2.4.x支持一种新的配置文件编写方式。从现在起,您可以使用 spring.config.import 导入其他组件的配置。

例如: spring.config.import=configserver:xxxspring.config.import=zookeeper:... 这样更加模块化,更符合云原生环境的要求。 4、关闭Spring Cloud Config Client的健康指示,之前使用了health.config.enabled=false。

现在改为management.health.config.enabled=false。包含无效字符(破折号)的端点 ID 已更改为符合标准。

从那时起,启动时就没有烦人的警告了,这拯救了洁癖者。 bus-env ->busenvbus-refresh ->busrefreshservice-registry ->serviceregistry 代码语言:javascript copy // old@Endpoint(id = "service-registry") public class ServiceRegistryEndpoint { ... } // new@Endpoint(id = "serviceregistry") public class ServiceRegistryEndpoint { ... } 常规升级 常规升级并没有太多关注。

主要关注其Spring Cloud Commons、Spring Cloud Kubernetes、Spring Cloud Openfeign...等组件。定期升级,乏善可陈。

值得注意的是:除了 Spring Cloud Circuitbreaker/Spring Cloud Kubernetes (2.0.0) 和 Spring Cloud Task (2.3.0) 之外,Spirng Cloud 的所有 Module 版本均已升级至 3.0.0(重大版本升级)。仍然存在的问题 虽然.0已经RELEASE,但是仍然存在未解决的问题。

下面是这个版本存在的几个问题: 如果使用 spring.config.import=configserver: 来配置配置中心,这个版本就漏掉了。支持重试参数解决方案:如果要使用它,则必须回退到传统方法(写在bootstrap.yaml中)。

spring-cloud-config-dependencies 中出现非发布版本的 jar(详情请参见截图) 解决方案 解决方案: 手动指定 jar 的版本号。注:M1是一个里程碑版本,仍处于早期阶段。

可能存在错误。建议您在使用它来替换此jar时手动指定版本号。

看来即使像Spring团队那么强大,也会出现各种问题。各种错误。

如果我这样想的话,我就可以大胆回去再写bug了。 ?总结 Spring Cloud .0.0是Spring Cloud的主要版本。

这是一个非常重要的存在。升级和改变也是巨大的。

特别体现在移除所有 Netflix 模块、改变 Spring Cloud 启动方式等。随着 Spring Boot 2.4.x 和 Spirng Cloud .0 的发布,以及 Netflix OSS 套件的放弃,我们必将进入一个新的阶段。

深入的编程体验,充满惊喜,非常刺激。注:因为这个版本完全抛弃了Netflix的一套东西,为了跟上时代,我会使用一段时间,尽快写出最新版本的系列教程,帮助大家避免陷阱。

虽然文末提到.0版本已发布,但还是存在一些问题。但话虽如此,这些都是小问题,可能会在下一个小版本中修复。

但尴尬的是,距离年底还有不到10天。如果我们输入年份,根据新的版本号命名规则,当时发布的版本将不再被称为。

版本号已经迭代,需要谨慎。您认为Spring Cloud团队会在2020年发布另一个版本吗?欢迎在评论区留下您的意见。

Spring Cloud 2020.0.0正式发布,再见Netflix

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 手摇充电宝、太阳能转换器,这些“变态”的充电宝实用吗?

    手摇充电宝、太阳能转换器,这些“变态”的充电宝实用吗?

    用手机扫描二维码支付,骑自行车,通过微信或电话联系人,打开外卖应用程序并安排您的日常膳食。 无处不在的电力和互联网构成了现代人的全部生活。 触手可及的便利很容易让人意识不到它有多么宝贵,因为在风平浪静的日子里,停电、断网都是一个遥远的话题。 然而,一场大雨打

    06-21

  • 为企业上云提供关键支撑,需要打好“存储和超融合”两个基础

    为企业上云提供关键支撑,需要打好“存储和超融合”两个基础

    云计算的快速发展,让越来越多的中国企业开始探索上云之路。 超融合市场也经历了爆发式增长。 未来很长一段时间,整个市场将基于多云共存,而从私有云到混合云再到公有云,超融合无疑可以提供平滑过渡的解决方案。 超融合架构采用软件定义技术,整合计算、存储、网络等资源,

    06-18

  • webview,用于 C-C++ 的小型跨平台 webview 库,下载webview的源码_GitHub_酷徒使用 WebKit(在 GTK-Cocoa 上)

    webview,用于 C-C++ 的小型跨平台 webview 库,下载webview的源码_GitHub_酷徒使用 WebKit(在 GTK-Cocoa 上)

    GitHub 上的 webview 库是一个紧凑而高效的解决方案,用于在 C/C++ 中创建跨平台图形用户界面 (GUI)。 它利用本机系统 Web 视图,例如适用于 Linux 和 macOS 的 WebKit 以及适用于 Windows 的 Edge WebView2,提供轻量级且资源高效的替代方案。 该库支持双向 JavaScript 绑定

    06-18

  • 奈雪PRO店开始卖咖啡,是要抢星巴克市场吗?

    奈雪PRO店开始卖咖啡,是要抢星巴克市场吗?

    11月25日,奈雪新茶饮店模式“耀茗”在深圳正式亮相,并在南山金地科技园和福田天安数码城开设“双店”。 奈雪PRO也是继奈雪茶馆、奈雪酒屋、奈雪梦工厂之后的第四类商店。 据奈雪茶相关负责人介绍,与以往奈雪店多位于高端商圈不同,奈雪PRO将聚焦一线城市,进军商务办公区和

    06-17

  • 2023年7月融资月报

    2023年7月融资月报

    一、互联网巨头企业投资概况 7月值得关注的互联网巨头投资案例中,投资方包括阿里、美团、腾讯、小米等13家企业,其中阿里、小米投资2家-速度。 7月,阿里领投AR眼镜公司致敬未来天使1万美元,美团投资1亿元人民币入智谱华章公司B2轮,小米集团战略投资元潼科技数千万元,腾

    06-18

  • 红杉种子掌控150亿,正在找你

    红杉种子掌控150亿,正在找你

    这是一个非常引领潮流的场景。 投资界获悉,今日(2月28日),红杉中国种子基金(简称:红杉种子)宣布旗下第三只种子基金(红杉中国种子基金III)已完成募集4.8亿美元(约合人民币30亿元) )并于近期进入投资期。 截至目前,红杉种子已管理资金近亿元,成为国内管理规模最大

    06-17

  • eSignBao获超10亿元D轮投资,电子签名再次迎来行业最大融资!

    eSignBao获超10亿元D轮投资,电子签名再次迎来行业最大融资!

    在不可逆转的全球数字化趋势推动下,电子签名行业迎来新的重大利好。 2019年11月5日,e闪宝正式宣布获得深创投、恒大高科技集团、大辰财智领投,元一投资、泛创资本等机构跟投,合计超过1亿元。 D 系列融资。 本轮融资将继续用于继续加大产品和技术研发投入,聚焦签约和合同,

    06-18

  • 德高化学汽车半导体封装树脂材料项目已开工

    德高化学汽车半导体封装树脂材料项目已开工

    据天津高新区官方微信报道,4月26日,天津德高化学新材料有限公司“汽车半导体封装树脂材料项目”开工海洋科技园创新创业园建设正式启动。 据悉,本次已开工的汽车半导体封装树脂材料新生产线项目将在高新区创新创业园建设汽车半导体封装树脂材料洁净车间。 共建设3条生产线,

    06-06

  • 无锡光子芯谷创新中心正式开工建设

    无锡光子芯谷创新中心正式开工建设

    无锡滨湖发布 近日,无锡光子芯谷创新中心(一期)奠基仪式举行。 滨湖区区委书记孙海东宣布项目正式开工。 市科技局局长赵建平,上海交通大学地方研究院发展办公室主任李健,上海交通大学无锡光子芯片研究院院长、上海市教授金宪民交通大学、区领导高阳,王鲁新、姚旭江、李

    06-06

  • 智翔科技获数千万元A轮融资

    智翔科技获数千万元A轮融资

    投资界7月31日获悉,据36氪报道,深圳市智翔科技有限公司(以下简称“智翔科技”),一家停止IT综合运维产品供应商”)宣布获得数千万元A轮融资,由深圳市投资控股东海投资有限公司领投。 智翔科技于2019年5月注册成立,正式投资2018年开始研发,2018年4月推出第一代IT综合运

    06-18

  • 超过2.5GW!风能和太阳能进入哥伦比亚私人拍卖候选名单

    超过2.5GW!风能和太阳能进入哥伦比亚私人拍卖候选名单

    哥伦比亚地区电力经销商 Air-e 周二表示,22 家国内和国际公司已进入其私人组织的可再生能源拍卖的资格预审阶段。 Air-e表示,来自瑞典、法国、西班牙、挪威、中国、墨西哥和葡萄牙的公司以及哥伦比亚同行提交了出售39个风能和太阳能项目电力的提案,这些项目的总发电量超过

    06-08

  • 八亿空间拟投资16.8亿元建设电子材料基地项目

    八亿空间拟投资16.8亿元建设电子材料基地项目

    7月11日,上市公司八亿空间发布公告,拟利用超募资金投资建设电子材料基地项目。 “浙江上虞电子材料基地项目”。 公告显示,随着信息技术的不断发展和进步,全球对电子材料的需求不断增长。 中国作为全球电子材料行业主要的产业聚集地,一方面拥有巨大的市场需求,另一方面国

    06-06