2025年05月21日,Kafka 3.9.1发布。
以下是Kafka 3.9.1版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程。
有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。
新功能
[KAFKA-806] - 索引可能无法始终遵循 log.index.interval.bytes
[KAFKA-17520] - 调整 ducktape 版本的下限
[KAFKA-18046] - 使用 Log4j2 时 CPU 使用率过高
[KAFKA-18237] - 将 3.7.2 添加到代码库
Bug
[KAFKA-8862] - 不存在分区的误导性异常消息
[KAFKA-12679] - 重新平衡正在恢复或运行的任务可能会导致新创建任务的目录活锁
[KAFKA-15931] - 如果分层存储读取被中断,缓存事务索引会被关闭
[KAFKA- 16407] - 当 FK 先前的值为空时,ForeignKey INNER join 会忽略 FK 的更改
[KAFKA-16434] - 当 FK 变为空时,ForeignKey INNER join 不会取消设置连接结果
[KAFKA-17299] - Kafka Streams 消费者停止消费
[KAFKA-17402] - 测试失败: DefaultStateUpdaterTest.shouldGetTasksFromRestoredActiveTasks expected: <2> 但是是: <3>
[KAFKA-17455] - `TaskCorruptedException` After Client Quota Throttling
[KAFKA-17507] - WriteTxnMarkers API 必须在标记被写入并在组协调器缓存中实体化后才能返回
[KAFKA-17635] - 当 excatly_once_v2 被设置且生产者被围栏围住时,内部重新分区主题上的事件丢失
[KAFKA-17792] - 标题解析结束时会出现计时。如果字符串看起来像一个数字,头解析最终会超时并使用大量内存
[KAFKA-17801] - RemoteLogManager 可能会为中止的 txns 计算不准确的 upperBoundOffset
[KAFKA-17872] - 当数据包被有意忽略时,Kafka 流作业不会提交偏移量
[KAFKA-17954] - 从 JMX 获取 oldest-iterator-open-since-ms 的错误
[KAFKA-17969] - 修复 StorageToolTest for 3. 9
[KAFKA-17994] - 反序列化 kafka 流记录时未处理已检查的异常
[KAFKA-17995] - `retention.ms` 的大值可能会阻止分层存储中的远程数据清理
[KAFKA-18001] - KafkaNetworkChannel 缺少 UpdateRaftVoterRequestData 逻辑
[KAFKA-18029] - 修复 quorum_reconfiguration_test.py
[KAFKA-18051] - 禁止使用不包含冒号的 principals 创建 ACL
[KAFKA-18063] - 快照注册表不应泄露内存
[KAFKA-18070] - 更新 kafka-metadata-quorum. sh 输出以匹配 KIP-853 后的外观
[KAFKA-18100] - `Using` block 会抑制所有错误
[KAFKA-18171] - 升级到 3.8.0 后 bootstrap.servers 行为的意外变化
[KAFKA-18199] - ConsumerGroupMemberMetadataValue.classicMemberMetadata 的大小计算不正确
[KAFKA-18263] - 恢复静态成员重新加入时必须获取组锁。
[KAFKA-18281] - Kafka (3.9.0) 正在不恰当地验证可路由控制器地址的非广告监听器
[KAFKA-18326] - 缓存存储可能会返回已删除的值
[KAFKA-18342] - Vagrantfile 无法与 ruby 3. 2
[KAFKA-18478] - RocksDBTimeOrderedKeyValueBuffer 只使用配置中的 serdes
[KAFKA-18547] - trunk 中的 ClientUtilsTest#testParseAndValidateAddressesWithReverseLookup 测试失败
[KAFKA-18597] - max-buffer-utilization-percent 总是 0
[KAFKA-18713] - Kafka Streams Left-Join 并不总是发出最后一个值
[KAFKA-18723] - KRaft 必须处理损坏的记录。KRaft 必须处理 fetch 响应中的损坏记录
[KAFKA-18758] - InvalidConfigurationException 之后关机时出现 NullPointerException
[KAFKA-18803] - acls 会出现在元数据 shell "树 "的错误级别
[KAFKA-18844] - QuorumController#registerBroker 中的陈旧特征信息
[KAFKA-18920] - kcontrollers 不设置 kraft. version in ApiVersionsResponse
[KAFKA-18943] - Kafka Streams 在任务重启期间不正确地提交 TX
[KAFKA-18962] - StateRestoreListener onBatchRestored 方法在 GlobalStateStore reprocess 中以 totalRestored 调用
[KAFKA-18991] - AbstractFetcherThread 应验证获取请求中的当前领导者纪元与获取状态中的领导者纪元是否匹配
[KAFKA-19071] - remote.storage.enable 的文档不正确
[KAFKA-18943] - Kafka Streams 在任务重启期间不正确地提交 TX storage.enable
[KAFKA-19166] - 发布标记是无主的
任务
[KAFKA-17078] - 添加 SecurityManager 反映 shim
[KAFKA-18047] - 在系统属性部分添加 org.apache.kafka.automatic.config.providers
[KAFKA-18583] - 改进/修复 KRaftMetadataCache.getPartitionReplicaEndpoints
测试
[KAFKA-18546] - 将 ClientUtilsTest#testParseAndValidateAddressesWithReverseLookup 改为模拟测试
子任务
[KAFKA-17030] - Voters不应假定Leader会向他们发送 BeginQuorumEpoch 请求
[KAFKA-17722] - 针对 JDK 23 修复 "this-escape" 编译器警告(BrokerTopicMetrics)
[KAFKA-17723] - 针对 JDK 23 修复 "this- escape" 编译器警告(MultiThreadedEventProcessor 和 DistributedHerder),适用于 JDK 23
[KAFKA-17973] - 放宽对投票者设置更改的限制
[KAFKA-18270] - SaslHandshake v0 和 FindCoordinator v0 被错误地标记为已废弃
[KAFKA- 18272] - 过时的协议 api 使用应在 info 级别记录
[KAFKA-18330] - 更新文档以移除控制器部署限制
[KAFKA-18334] - Produce v4-v6 应是不被弃用的
[KAFKA-18352] - DeleteGroups v0 被错误地标记为被弃用
[KAFKA-18663] - Metadata v0-v3 应是不被弃用的
[KAFKA-18675] - 为 KAFKA-18171 添加单元测试以验证 bootstrap. 服务器
[KAFKA-18984] - 使用 kafka-client-metrics.sh 重置 interval.ms 失败