Kafka2.5.0发布信息可参考https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=143428858
1.发布时间
KIP Freeze时间:2020年1月22日
Feature Freeze时间:2020年1月29日
Code Freeze时间:2020年2月12日
Release时间:2020年2月26日
2.版本需求
Kafka2.5.0版本对以下24个特性进行了开发。
KIP-150 - Kafka-Streams Cogroup
过去,将多个流聚合成一个流可能很复杂,而且容易出错。通常我们需要将所有流分组(group)并聚合(aggregate)到表中,然后进行多个 outerjoin调用。
新的 co-group 算子简化了这个过程,其减少了状态存储调用的数量,总体上提高了性能。
KIP-352: Distinguish URPs caused by reassignment
KIP-360: Improve reliability of idempotent/transactional producer
提高幂等/事务性生产者的可靠性
这个 KIP 解决了生产者状态保留在 broker 上问题,使得幂等性保证成为可能。在此之前,当日志被截断以强制保留或从删除记录的调用中截断时,broker 将删除生产者的状态,这将导致 UnknownProducerld 异常。通过这个改进,broker 将保留 producer 状态直到过期。这个KIP还为生产者提供了一种从意外错误中恢复的强大方法。
KIP-396: Add Reset/List Offsets Operations to AdminClient
KIP-447: Producer scalability for exactly once semantics (partial)
Producer 可伸缩性支持仅且一次语义
这个KIP简化了以事务方式从 Kafka 读写的应用程序的API。以前,这个用例通常需要为每个输入分区提供单独的生产者实例,现在这个限制已经被取消了。这使得构建消费大量分区的仅且一次语义的应用程序变得更加容易。
KIP-455: Create an Administrative API for Replica Reassignment
KIP-511: Collect and Expose Client's Name and Version in the Brokers (new metrics)
KIP-515: Enable ZK client to use the new TLS supported authentication
KIP-523: Add KStream#toTable to the Streams DSL
将事件流解释为一个变更日志并将其物化成一张表表是一种强大的方法。KIP-523 引入了 toTable 函数的可以将其应用到流中,并能够将每个 key 的最新值进行物化。需要注意的是,任何空值 (null) 都将被解释为对给定键的删除
KIP-524: Allow users to choose config source when describing configs
KIP-526: Reduce Producer Metadata Lookups for Large Number of Topics
KIP-527: Add VoidSerde to Serdes
KIP-530: Consider renaming 'UsePreviousTimeOnInvalidTimeStamp' class to 'UsePartitionTimeOnInvalidTimeStamp'
KIP-531: Drop support for Scala 2.11 in Kafka 2.5
KIP-535: Allow state stores to serve stale reads during rebalance
允许状态存储在重新平衡期间提供过时的数据
以前,在进行重新平衡期间,针对状态存储的交互式查询(IQ)将失败。这降低了依赖于查询 Kafka Streams 状态表功能的应用程序的正常运行时间。KIP-535 使应用程序能够查询状态存储的任何副本,并能够观察到每个副本落后千主副本多远
KIP-537: Increase default zookeeper session timeout
KIP-538: Add a metric tracking the number of open connections with a given SSL cipher type
KIP-541: Create a fetch.max.bytes configuration for the broker
KIP-543: Expand ConfigCommand's non-ZK functionality
KIP-553: Disable all SSL protocols except TLSV1.2 by default.
KIP-555: Deprecate Direct Zookeeper access in Kafka Administrative Tools (partial in 2.5)
KIP-558: Track the set of actively used topics by connectors in Kafka Connect
KIP-559: Make the Kafka Protocol Friendlier with L7 Proxies
KIP-562: Allow fetching a key from a single partition rather than iterating over all the stores on an instance