第 5 章 已弃用的功能
本发行版本中已弃用的功能,以及之前的 Apache Kafka Streams 版本支持的功能如下所示。
5.1. Apache Kafka Streams
5.1.1. Java 11 在 Apache Kafka 2.7.0 的流中被弃用
对 Java 11 的支持已从 Kafka 3.7.0 和 Streams for Apache Kafka 2.7.0 弃用。在版本 3.0.0 中,包括客户端在内的 Apache Kafka 组件的所有流都不支持 Java 11。
Apache Kafka 的流支持 Java 17。在开发新应用程序时使用 Java 17。计划将当前使用 Java 11 的任何应用程序迁移到 17。
如果您要继续使用 Java 11 一段时间,对于 Apache Kafka 2.5 的 Streams 提供了 Long Term Support (LTS)。有关 LTS 术语和日期的详情,请查看 Apache Kafka LTS 支持政策的流。
在 Apache Kafka 2.4.0 的 Streams 中删除了对 Java 8 的支持。如果您当前正在使用 Java 8,计划以同样的方式迁移到 Java 17。
5.1.2. 环境变量配置供应商
您可以使用配置供应商来加载来自所有 Kafka 组件的外部来源的配置数据,包括生产者和消费者。
在以前的版本中,您可以启用 io.strimzi.kafka.EnvVarConfigProvider
环境变量配置供应商。但是,这个供应商现已弃用,并将在以后的版本中删除。因此,建议更新您的实现,以使用 Kafka 自己的环境变量配置供应商('org.apache.kafka.common.config.provider.EnvVarConfigProvider ')提供配置属性作为环境变量。
启用环境变量配置提供程序的示例配置
config.providers.env.class=org.apache.kafka.common.config.provider.EnvVarConfigProvider
config.providers.env.class=org.apache.kafka.common.config.provider.EnvVarConfigProvider
5.1.3. Kafka MirrorMaker 2 身份复制策略
身份复制策略是 MirrorMaker 2 的一个功能,用于覆盖远程主题的自动重命名。主题不会使用源集群的名称添加名称,而是保留其原始名称。此设置对主动/被动备份和数据迁移场景特别有用。
要实现身份复制策略,您必须在 MirrorMaker 2 配置中指定复制策略类(replication.policy.class
)。在以前的版本中,您可以指定位于 Apache Kafka mirror-maker-2-extensions
组件的 Streams 中的 io.strimzi.kafka.connect.mirror.IdentityReplicationPolicy
类。但是,这个组件现已弃用,并将在以后的版本中删除。因此,建议您更新您的实现以使用 Kafka 自己的复制策略类(org.apache.kafka.connect.mirror.IdentityReplicationPolicy
)。
5.1.4. Kafka MirrorMaker 1
Kafka MirrorMaker 在两个或更多活跃 Kafka 集群之间复制数据,并在数据中心之间复制数据。Kafka MirrorMaker 1 在 Kafka 3.0.0 中已弃用,并将在 Kafka 4.0.0 中删除。MirrorMaker 2 将是唯一可用的版本。MirrorMaker 2 基于 Kafka Connect 框架,连接器管理集群之间的数据传输。
因此,在 Apache Kafka 的 Streams 中弃用了 MirrorMaker 1 (称为 MirrorMaker),在使用 Kafka 4.0.0 时会删除支持。为了避免中断,请在支持结束前过渡到 MirrorMaker 2。
如果使用 MirrorMaker 1,您可以使用 IdentityReplicationPolicy
类在 MirrorMaker 2 中复制其功能。默认情况下,MirrorMaker 2 将复制的主题重命名为目标集群,但 IdentityReplicationPolicy
保留原始主题名称,启用与 MirrorMaker 1 相同的主动/被动单向复制。