第一部分: 基础升级
1: 弃用 Kafka 中对 Java 8 的支持
Kafka 目前支持 Java 8、11 和 15(即将为 16)。换句话说,我们支持两个最新的 LTS 版本和最新的非 LTS 版本。由于我们必须在每个受支持的版本上编译和运行测试,因此从开发和测试的角度来看,这是一笔不小的成本。
Java 17 将于今年晚些时候发布,它将是一个 LTS 版本。为避免在 Java 18 发布后支持 4 个 Java 版本,我们希望放弃对 Java 8 的支持。但是,还有其他注意事项:
尽管 Java 8 于 2014 年 3 月(7 年前)发布,但它仍然是使用最广泛的 Java 版本。Java 11 于 2018 年 9 月(近 3 年前)发布。
在我们删除对给定 Java 版本的支持之前需要一个弃用期,并且删除应该发生在主要的 Kafka 版本中。
我们依赖的重要项目可能会先于我们取消对 Java 8 的支持,这可能会在涉及 CVE 所需的更新时带来挑战。一个例子是Jetty 10。
在所有应用程序中升级 Java 版本通常比在服务(例如代理、连接等)中升级 Java 版本更难。
我们预计 Apache Kafka 3.0 将在 2021 年 7 月/8 月左右发布,而 4.0 将在此后至少 16 个月发布。鉴于此和上述情况,我们建议弃用 Apache Kafka 3.0 中的 Java 8 支持并放弃 Apache Kafka 4.0