Netflix Eureka 2.0.0正式发布:借尸还魂还是虚晃一枪?

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

在这里插入图片描述

本文已被https://yourbatman.cn收录女娲Knife-Initializr工程可公开访问啦程序员专用网盘https://wangpan.yourbatman.cn技术专栏源代码大本营https://github.com/yourbatman/tech-column-learning公号后台回复“专栏列表”获取全部小而美的原创技术专栏

你好我是YourBatman一个俗人贪财好色。

TitleLink
所属专栏[YourBatman]-资讯/新特性[YourBatman]-Spring技术栈新特性
源代码https://github.com/yourbatman/FXP-java-ee
程序员专用网盘公益上线啦注册送1G超小容量帮你实践做减法https://wangpan.yourbatman.cn
Java开发软件包(Mac)https://wangpan.yourbatman.cn/s/rEH0 提取码javakit
女娲工程http://152.136.106.14:8761
版本约定[Mac OS 13.1][IDEA 2022.3.1][Spring Boot 3.0.0]

前言

北京时间2022-12-14Netflix的Eureka 2.0.0正式发布。

惊不惊喜意不意外Eureka 2.x闭源、停止更新似乎已成共识突然间“借尸还魂”发布新版本难道是虚晃一枪先看下它们的压压惊

✍正文

本文之所以聊一聊Eureka是因为它还是有一定话题度的。换句话讲在Spring Cloud的加持下Eureka作为注册中心的市场占有率蛮高的大概率还是第一名非官方数据笔者个人直觉而已。

真的or假的

这虽然有点难以置信但一图胜千言
在这里插入图片描述
在这里插入图片描述
结论真的毋庸置疑

谁在提交代码

继续看图
在这里插入图片描述
一直提交代码的竟是Spring Cloud的作者并非奈飞的工程师

其实不然Spencer Gibb确实有过不少的commit但他绝非唯一。但他的源动力是很足的作为Spring Cloud项目的负责人之一也得负责将Release Train上的组件整合进来嘛。说到底还是谁最痛谁去推

PS代码肯定不会是他一个人来写commit也有不少奈飞的工程师但主要推手之一一定有他

为什么还在维护Eureka

既然Netflix官方都不愿去继续发展Eureka了为何还在持续迭代升级呢

这其中非常重要的一个原因是Eureka作为配置中心组件足够优秀

  • 整体设计、表现、性能、代码水平…都属非常优秀级别
  • 无明显短板性能可能算一个但只要不是超大规模集群就不成问题

这里祭出各个注册中心对比图感受下Eureka的“强悍”
在这里插入图片描述

乍一看Nacos貌似完胜但“国产软件”想要走向世界还有一段路要走。这不体现在它是否实现的功能而体现在实现的非功能如文档、宣传、设计、代码水平等。

这次更新的目的是啥

结合Spring Framework、Spring Boot、Spirng Cloud的发布节点以及上面截图中
Spring Cloud作者一直提交代码的迹象来看本次升级的目的就显而易见了继续拥抱Spring Cloud。这不最新的Spring Cloud 2022已经“拥抱”它了
在这里插入图片描述

本次升级的目的Release Note上也做了说明这个2.0.0版本是一项新的工作和2.x-archive分支是完完全全的两码事从代码分支里也能看出来
在这里插入图片描述

本次升级Eureka Server的Http API接口和数据结构没有任何改变。言外之意协议层面100%向下兼容兼容1.x的Client客户端。所以本次升级的目的主要是Spring Framework 6.0和Spring Boot 3.0兼容并且拥抱Jakarta EE 9。


what’s new新特性

既然升级已成事实并非虚晃一枪。那就看看新版本带来了哪些新特性呗。

虽然是大版本号的升级但在功能上并不会有多少改变简要看一看。

最低版本要求

  • JDK 8跑测试的话要求JDK 11及以上因为测试依赖基于Jakarta EE 9的Jetty
    • 解释原生Eureka Client&Server的代码使用JDK 8可以正常构建、使用
  • Spring Boot 3.0.0
  • Spring Cloud 2022.0.0

原生Eureka估计没人会直接使用一般都会结合Spring Cloud一起这也是“官方推荐”。

其它改变

众所周知Eureka是CS模式分为Client端和Server端。上面提到本次升级协议层面完全没变但这并不代表代码层面没有变化。

2.0.0版本Java客户端API不向后兼容1.x。言外之意接口协议虽不变但实现接口的代码API变了不兼容1.x了。我们知道Eureka发送Http请求使用的是glassfish的Jersey客户端版本变强便是本次不兼容的主要原因Eureka 1.x版本默认使用Jersey 1.x可选支持Jersey 2.x而Eureka 2.0.0版本使用的是jersey 3.x。
在这里插入图片描述
从Jar包层面可以看出除了javax.* -> jakarta.*改变得并不多官方描述的是2.0.0大部分Java客户端API保持不变

另外eureka-server这个模块现在并不能直接打成一个WAR包部署因为“官方”这里主要指的Spring官方觉得没有必要毕竟你不太可能单独去裸跑它。推荐的使用方式是作为Spring Cloud Netflix的一部分跑在Spring Boot应用上非常方便。

使用兼容性示例

大版本号升级了并且还存在一定阻断式但官方又一直强调改变得不多那么到底如何呢保险起见笔者跑了几个典型case看看

  1. eureka-server下图可看到1.x和2.x的后台页面一毛一样
    在这里插入图片描述
    在这里插入图片描述
  2. 服务注册。笔者启了一个基于Spring Cloud 2021版本基于1.x的eureka-client的应用分别进行注册到1.x和2.x的eureka-server情况为完全兼容无任何违和感符合官方说的协议层面100%兼容
    在这里插入图片描述
    在这里插入图片描述
  3. 集群模式。1.x和2.x可以无缝的组成集群模式笔者亲测这里就不贴图了留给你自己玩一玩哈

声明本文的case只做简单的现象、效果测试不对最终生产环境负责请酌情参考

总结

本次大版本号升级虽然不是虚晃一枪但也仅属小打小闹。对你之前学习过的Eureka知识、源码并不构成冲击基本没什么变动也算一件好事。

PS若你对Eureka还不是很了解笔者之前写过一个专栏来专门介绍有空可去翻一番哈
在这里插入图片描述

推荐阅读

在这里插入图片描述

我是YourBatman前25年不会写Hallo World、早已毕业的大龄程序员。高中时期《梦幻西游》骨灰玩家网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖…是我不可抹灭的黑标签

  • 2013.07 清考、毕业答辩3次未通过、延期毕业
  • 2013.08-2014.07 宁夏中介公司卖二手房1年毕业后第1份工作
  • ️️2014.07-2015.05 荆州/武汉泰康人寿卖保险3月、饿了么送外卖2月还有炸鸡排、直销等第2345份工作
  • 2015.08 开始从事Java开发闯过外包呆过大厂擅长抽象思维任基础架构团队负责人
  • 2021.08 因“双减政策”失业历经9面终获美团外卖L8的offer
  • ‍♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
  • 高质量代码、规范践行者DDD领域驱动深度实践即将出版书籍《Spring奇淫巧技》

在这里插入图片描述

序号专栏名称简介
01[YourBatman]-程序人生程序人生人生程序
02[YourBatman]-资讯/新特性IDEA、JDK、Spring技术栈…新特性
03[YourBatman]-IntelliJ IDEA熟练使用IDEA就相当拥有物理外挂助你高效编码
04[YourBatman]-Bean Validation熟练掌握数据校验减少90%的垃圾代码
05[YourBatman]-日期时间帮你解决JDK Date、JSR 310日期/其实 的一切问题
06[YourBatman]-Spring类型转换Spring类型转换-框架设计的基石
07[YourBatman]-Spring staticstatic关键字在Spring里的应用
08[YourBatman]-Cors跨域关于跨域请求问题本专栏足矣
09[YourBatman]-JacksonAlmost Maybe是最好的Jackson专栏
10[YourBatman]-Spring配置类专讲@Configuration配置类你懂的
11[YourBatman]-Spring技术栈暂无所属小分类的Spring技术栈大分类
12[YourBatman]-JDK暂无所属小分类的JDK技术栈大分类
13[YourBatman]-ServletServlet规范、Web相关内容专题
14[YourBatman]-Java EE从Java EE到Jakarta EE30年弹指一挥间
15[YourBatman]-工具/提效开发工具、软件工具目标是提效
16[YourBatman]-Spring技术栈新特性 Spring Framework、Spring Boot、Spring Cloud、Spring其它技术
17[YourBatman]-基本功 每个Javaer都需要有扎实的基本功
99源代码库大多数专栏均配有源代码都在这里
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“Netflix Eureka 2.0.0正式发布:借尸还魂还是虚晃一枪?” 的相关文章