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一个俗人贪财好色。
Title | Link |
---|---|
所属专栏 | [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闭源、停止更新似乎已成共识突然间“借尸还魂”发布新版本难道是虚晃一枪先看下它们的压压惊
- Spring Boot 3.0.0正式发布Banner不再支持图片&增强可观测性
- Spring Boot 2.7.0正式发布弃用从spring.factories加载自动配置类
- Spring Boot 2.6.0正式发布循环引用终于被禁
- Spring Boot 2.5.0正式发布环境变量可指定前缀的功能很赞
- Spring Boot 2.4.0正式发布全新的配置文件加载机制
- Spring Boot 2.3.0正式发布优雅停机、配置文件位置通配符
✍正文
本文之所以聊一聊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看看
- eureka-server下图可看到1.x和2.x的后台页面一毛一样
- 服务注册。笔者启了一个基于Spring Cloud 2021版本基于1.x的eureka-client的应用分别进行注册到1.x和2.x的eureka-server情况为完全兼容无任何违和感符合官方说的协议层面100%兼容
- 集群模式。1.x和2.x可以无缝的组成集群模式笔者亲测这里就不贴图了留给你自己玩一玩哈
声明本文的case只做简单的现象、效果测试不对最终生产环境负责请酌情参考
总结
本次大版本号升级虽然不是虚晃一枪但也仅属小打小闹。对你之前学习过的Eureka知识、源码并不构成冲击基本没什么变动也算一件好事。
PS若你对Eureka还不是很了解笔者之前写过一个专栏来专门介绍有空可去翻一番哈
推荐阅读
- IntelliJ IDEA 2022.3正式发布配置云同步&支持Redis好用到炸
- Spring Framework 6正式发布携JDK 17&Jakarta EE开启新篇章
- IntelliJ IDEA 2022.2正式发布支持Spring Boot 3和Spring 6
- JVM除了HotSpot你还知道哪些
- YourBatman用趣味代码雨祝你端午安康
- 逐渐碎片化的Java生态圈Oracle JDK、OpenJDK、阿里Dragonwell、华为毕昇
我是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 static | static关键字在Spring里的应用 |
08 | [YourBatman]-Cors跨域 | 关于跨域请求问题本专栏足矣 |
09 | [YourBatman]-Jackson | Almost Maybe是最好的Jackson专栏 |
10 | [YourBatman]-Spring配置类 | 专讲@Configuration配置类你懂的 |
11 | [YourBatman]-Spring技术栈 | 暂无所属小分类的Spring技术栈大分类 |
12 | [YourBatman]-JDK | 暂无所属小分类的JDK技术栈大分类 |
13 | [YourBatman]-Servlet | Servlet规范、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 | 源代码库 | 大多数专栏均配有源代码都在这里 |
- 源代码库地址https://github.com/yourbatman/tech-column-learning
- CSDN主页https://blog.csdn.net/f641385712
- 掘金主页https://juejin.cn/user/430664289367192
- 博客园主页https://www.cnblogs.com/yourbatman
- 个人博客主页https://yourbatman.cn
- 个人网盘主页https://wangpan.yourbatman.cn
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |