Kafka2.6.0发布信息


发布于 2020-08-09 / 65 阅读 / 0 评论 /
Kafka2.6.0发布内容和发布时间

Kafka2.6.0发布信息可参考https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=152113430

1.发布时间

KIP Freeze时间:2020年5月20日

Feature Freeze时间:2020年5月27日

Code Freeze时间:2020年6月10日

Release时间:2020年8月3日

2.版本需求

Kafka2.6.0版本对以下30个特性进行了开发。

KIP-131 - Add access to OffsetStorageReader from SourceConnector

KIP-158: Kafka Connect should allow source connectors to set topic-specific settings for new topics

这个特性是很多用户需要的,有了这个功能 Kafka Connect 可以在自动为写入记录的源连接器创建 Kafka 主题如果这些主题不存在)。默认情况下这个功能是启用的,但是需要我们设置一些连接器配置 (connector confiqurations)以便可以成功创建主题。例如,如果我们设置以下的配置将使 Connect创建的缺失主题具有5个分区目复制因子为3:

topic.creation.default.replication.factor=3
topic.creation.default.partitions=5

KIP-221: Enhance DSL with Connecting Topic Creation and Repartition Hint

KIP-401: TransformerSupplier/ProcessorSupplier StateStore connecting

KIP-437: Custom replacement for MaskField SMT

KIP-441: Smooth Scaling Out for Kafka Streams (additional parts in 2.6)

KIP-444: Augment metrics for Kafka Streams (additional parts in 2.6)

KIP-446: Add changelog topic configuration to KTable suppress

KIP-447: Producer scalability for exactly once semantics (remainder in 2.6)

KIP-518: Allow listing consumer groups per state

KIP-519: Make SSL context/engine configuration extensible

KIP-546: Add Client Quota APIs to the Admin Client (remainder in 2.6)

在 Kafka 中管理配额 (quotas) 是一项具有挑战的事情,因为它们可以映射到用户和客户端的任何组合。

KIP-546 这个特性添加了一个用于管理配额的内置 API,从而使过程更加直观且不易出错。新的 命令行工具允许用户描述现有的配额,使用有关如何导出配额的上下文信息来解析实体的有效配额,并目可以通过这个命令行工具对Quota 进行添加,更新,删除等操作。

KIP-551: Expose disk read and write metrics

Kafka broker 所在机器上的磁盘访问可能会影响延迟和吞吐量。

KIP-551 这个特性增加了 Kafka 从磁盘读取和写入的字节数指标。

KIP-557: Add emit on change support for Kafka Streams (partially complete in 2.6)

KIP-568: Explicit rebalance triggering on the Consumer

在 Kafka 2.6.0 版本之前,Rebalance 的触发都是由消费者 Coordinator 来执行的,Kafka consumer Coordinator协调哪个主题分区分配给消费者组(consumer group) 的哪个消费者。

KIP-568 这个功能允许应用程序使用消费者 API (enforceRebalance) 显式触发重新平衡,例如,应用程序使用某些系统条件来确定它是否准备好接收分区。

KIP-569: DescribeConfigsResponse - Update the schema to include additional metadata information of the field

KIP-570: Add leader epoch in StopReplicaRequest

KIP-571: Add option to force remove members in StreamsResetter

KIP-573: Enable TLSv1.3 by default

在使用 Java 11 或更高版本时,TLS 1.3 现在是默认的 TLS 协议,而 TLS 1.2 仍然是早期 Java 版本的默认协议5 Apache Kafka 2.5.0 一样,由于已知的安全漏洞,TLS 1.0 和1.1在默认情况下是禁用的,但是如果需要,用广仍然可以启用它们。

KIP-574: CLI Dynamic Configuration with file input

Kafka 配置的大部分是由一个单值映射到一个配置名称。在 KIP-574 之前,很难设置由更复杂的结构如嵌套的list 或JSON)定义的配置。Kafka 2.6 现在支持使用 命令行工具来设置文件中已经定义的配置。

KIP 577: Allow HTTP Response Headers to be Configured for Kafka Connect

KIP-585: Filter and Conditional SMTs

为使用多个主题的连接器定义 SMT 可能具有挑战性,因为并非每个 SMT 都可以适用于每个主题的每条记录。有了KIP-585 这个特性,每个SMT 都可以定义一个谓词以及应用该 SMT 时的条件。它还定义了一个“过滤器”SMT,它与谓词一起工作,以删除匹配特定条件的记录

KIP-586: Deprecate commit records without record metadata

KIP-594: Expose output topic names from TopologyTestDriver

KIP-602: Change default value for client.dns.lookup

Apache Kafka 2.1.0 和 KIP-302 为 client.dns.lookup 客户端属性引入了 use all dns ips 选项Kafka 2.6.0开始,use al dns ips 选项是默认选项了,因此它将尝试使用主机名的所有可能 IP 地址连接到 broker。新的默认值将降低连接失败率,并且在单个主机名可以解析为多个IP地址的云和容器化环境中更为重要

KIP-604: Remove ZooKeeper Flags from the Administrative Tools (partially complete in 2.6)

KIP-605: Expand Connect Worker Internal Topic Settings

说到创建主题,我们现在可以对内部的主题 (internal topics)进行一些配置,比如使用 Kafka Broker 的默认分区数和副本因子,这些内部主题通常用于存储 connector 的配置、偏移量以及状态等。

KIP-606: Add Metadata Context to MetricsReporter

KIP-610: Error Reporting in Sink Connectors

如果某些记录不能被序列化或反序列化,或者当单个消息转换 (SMT)失败时,Kafka Connect 已经具备了将这些记录写入死信队列 (DLQ)主题的能力。现在,如果连接器认为记录无效或有问题,Connect 可以使接收连接器(sink connectors)将单个记录发送到 DLQ。接收连接器需要显式地使用此特性,这样做将允许接收连接器在消费到与其不兼容的记录时,仍然可以继续正常运行。

KIP-613: Add end-to-end latency metrics to Streams (partially complete in 2.6)