活久见!Kafka 宣布弃用 Java 8。。。
时间:2021-10-25 14:35:23
手机看文章
扫描二维码
随时随地手机看文章
[导读]本文转载自公众号Java技术栈Kafka3.0.0发布了:主要更新如下:ThedeprecationofsupportforJava8andScala2.12KafkaRaftsupportforsnapshotsofthemetadatatopicandotherimprove...
本文转载自公众号 Java技术栈Kafka 3.0.0 发布了:主要更新如下:
第一条就是宣布弃用对 Java 8 和 Scala 2.12 的支持!!!在 Kafka 3.0.0 中,Kafka 项目中的所有组件都已弃用对 Java 8、Scala 2.12 的支持,宣布弃用,但 3.0.0 还能用,这次宣布只是给用户一个调整的时间,到了 Kafka 4.0,Java 8、Scala 2.12 将将正式取消支持。其实,其他一些中间件也早有停止对 Java 8 的支持,选择 Java 11 作为最低支持版本,但 Kafka,这可能是自 Java 17 发布以来,也就是近半月时间,官宣弃用 Java 8 打响的第一枪。。Java 8 虽然有点老了,但依然是现在市场上用的最多的版本,虽然有些中间件不再支持 Java 8 了,但实际开发工作并不受影响,Java 8 系列教程我也写了一堆了,关注公众号Java技术栈在菜单栏中进行阅读吧。Kafka 目前支持的 Java 版本如下:从官网看,Kafka 目前支持两个 LTS 版本( Java 8 和 Java 11)如果启用 TLS,那么 Java 11 的性能将得到显著提升,所以官方也强烈推荐大家使用 Java 11。Java 11 是比 Java 8 更新一代的长期支持版本,它还包括许多其他的性能改进,比如:G1 垃圾收集器、CRC32C、字符串压缩、Thread-Local 握手机制 等等,另外从安全的角度考虑,建议使用较为新一点的安全版本,防止老版本的安全漏洞。现在随着 Java 17 的发布及免费,Java 17 还是史上最快的 JDK,相信在不久的时间,Kafka 对于 Java 17 的支持也会安排上。在多个 Java 版本上进行开发、编译和测试,对于 Kafka 团队来说肯定是一笔不小的维护成本,所以,Kafka 还有什么理由继续保留 Java 8 呢?Java 11/ Java 17 可能是更香的选择!此外,Kafka 3.0 还改进了 KRaft 共识算法(Raft 的变种)这个 Kafka 内置的 KRaft 共识机制,是用来取代 Apache ZooKeeper 的,早在很久之前(Kafka 2.8.0) Kafka 就宣布替换 Zookeeper 了:不过到现在还不是很成熟,目前还不建议用在生产环境,官方也只是建议在开发环境进行试用。Kafka 一向以性能著称,还要额外维护一个重量级的 Zookeeper 组件,确实也没有必要,所以就自己搞出了 KRaft 机制,让自己变得更轻量,也可以带来更优的性能。所以,在未来的版本中,Zookeeper 也会消失在 Kafka 的长河里……总结下,可能大家觉得,很多知识,还没开始学,就要被淘汰了,永远跟不上技术的步伐。。。是的,很多东西,我们虽然不学,但也要知道,也就是技术的广度,如果现在面试官问你 Kafka 的领导选举机制是怎样的,你还只会说 Zookeeper,而不知道 KRaft 机制的存在,那面试官可能就觉得你对技术的敏锐能力不高了。所以说,我们不能每天重复着重复 CRUD 搬砖劳动,有时间,闲下来,也要时刻保持对技术的渴望,不但要追求深度,也要追求广度,这样不仅是在职场,还是在面试战场,都能让你游刃有余。好了,今天的分享就到这里了,后面我会分享更多好玩的 Java 技术和最新的技术资讯,关注本公众号第一时间推送。最后,觉得我的文章对你用收获的话,动动小手,给个在看、转发,原创不易,我需要你的鼓励。
- The deprecation of support for Java 8 and Scala 2.12
- Kafka Raft support for snapshots of the metadata topic and other improvements in the self-managed quorum
- Stronger delivery guarantees for the Kafka producer enabled by default
- Deprecation of message formats v0 and v1
- Optimizations in OffsetFetch and FindCoordinator requests
- More flexible Mirror Maker 2 configuration and deprecation of Mirror Maker 1
- Ability to restart a connector's tasks on a single call in Kafka Connect
- Connector log contexts and connector client overrides are now enabled by default
- Enhanced semantics for timestamp synchronization in Kafka Streams
- Revamped public API for Stream's TaskId
- Default serde becomes null in Kafka