2024年6月28日,Kafka 3.7.1发布。
以下是Kafka 3.7.1版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程。
有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。
改进
[KAFKA-15905] - MirrorCheckpointTask 的重新启动不应永久中断偏移转换
[KAFKA-16108] - 将 KAFKA-16093 的反向移植修复到 3.7
Bug
[KAFKA-9228] - 重新配置的转换器和客户端可能无法传递到连接器任务
[KAFKA-15170] - CooperativeStickyAssignor 无法正确调整分配
[KAFKA-16003] - 在“双写”模式下 KRaft 迁移期间,znode /config/topics 未更新
[KAFKA-16025] - Streams StateDirectory 在重新平衡后具有孤立锁,阻止将来的重新平衡
[KAFKA-16047] - 启用 EOS 的源连接器有一些 InitProducerId 请求超时,实际上导致所有任务和整个连接器失败
[KAFKA-16073] - Kafka 分层存储:由于在段删除期间延迟更新 localLogStartOffset 导致消费者获取错误
[KAFKA-16105] - 由于以下原因,分层topic的重新分配失败RemoteStorageException
[KAFKA-16209] - 如果topic是在 v2.8 之前创建的,fetchSnapshot 可能会返回 null
[KAFKA-16217] - 事务生产者在关闭期间卡在 IllegalStateException 中
[KAFKA-16222] - KRaft 迁移:迁移客户端配额时对实体名称进行消毒
[KAFKA-16226] - Java 客户端:分区数较高的 Trogdor 基准测试中的性能回归
[KAFKA-16277] - CooperativeStickyAssignor 未在消费者组中均匀分布主题
[KAFKA-16278] - 缺少与 scala 相关的依赖项的许可证
[KAFKA-16305] - SslTransportLayer:handshakeUnwrap 中的优化会停止 TLS 握手
[KAFKA-16319] - 当涉及多个topic时,DeleteRecords 请求的代理目的地错误,并且topic/分区由不同的broker Leader
[KAFKA-16322] - 通过将 jline 从 3.22.0 更新到 3.25.1 来修复 CVE-2023-50572
[KAFKA-16347] - 将 ZooKeeper 升级到 3.8.4
[KAFKA-16359] - 发布到 Maven Central 的 kafka-clients-3.7.0.jar 存在缺陷
[KAFKA-16369] - 当 SocketServer 无法绑定,因为 Address 已在使用中时,Broker 可能无法关闭
[KAFKA-16371] - 触发提交后,提交的offset不稳定,其中某些分区的元数据超出限制
[KAFKA-16386] - 交易验证中的 NETWORK_EXCEPTION 未转换
[KAFKA-16392] - 虚假日志警告:“忽略分区键列表中第二个元素的格式意外的偏移分区键。预期类型:java.util.Map,实际类型:null”
[KAFKA-16408] - kafka-get-offsets / GetOffsetShell 不处理 --version 或 --help
[KAFKA-16410] - kafka-leader-election / LeaderElectionCommand 未在发生错误时设置退出代码
[KAFKA-16411] - 在 KRaft 迁移中正确迁移默认客户端配额实体
[KAFKA-16428] - 修复在迁移期间可能无法创建配置更改通知 znode 的错误
[KAFKA-16466] - QuorumController 正在吞下一些异常消息
[KAFKA-16471] - SslTransportLayer 可能会泄漏 SSLEngine 资源
[KAFKA-16473] - KafkaDockerWrapper 在格式化日志目录时使用了错误的集群 ID
[KAFKA-16511] - 泄漏分层段
[KAFKA-16539] - 无法在迁移前模式下更新特定broker配置
[KAFKA-16563] - 在 MigrationClientException 之后迁移到 KRaft 挂起
[KAFKA-16570] - FenceProducers API 返回“意外成功时出现错误”
[KAFKA-16583] - Kraft 模式下从 3.4.0 更新到 3.7.0 镜像写入失败
[KAFKA-16606] - KRaft 中的 JBOD 支持似乎不受元数据版本的限制
[KAFKA-16622] - Mirromaker2 第一个检查点未发出,直到消费者组完全赶上一次
[KAFKA-16692] - InvalidRequestException:ADD_PARTITIONS_TO_TXN 版本 4,从 kafka 3.5 升级到 3.6 时未启用
[KAFKA-16757] - 修复 MV 3.7-IV2 周围的代理重新注册问题
[KAFKA-16790] - 在配置 RemoteLogManager 之前对其进行了调用
[KAFKA-16807] - DescribeLogDirsResponseData#results#topics 有意外的topic,其中包含空分区
[KAFKA-16814] - 缺少 `partition.metadata` 时 KRaft 代理无法启动
[KAFKA-16837] - Kafka Connect 因先前的配置提供程序任务不正确而无法更新连接器
[KAFKA-16838] - Kafka Connect 从已删除的连接器加载旧任务
[KAFKA-16886] - 升级到 3.7.0 后 KRaft 分区重新分配失败
[KAFKA-16969] - 设置多个日志目录时 KRaft 无法升级到 v3.7.1 及更高版本
[KAFKA-16988] - ConnectDistributedTest 系统测试中出现 InsufficientResourcesError
任务
[KAFKA-16605] - 修复不稳定的 LogCleanerParameterizedIntegrationTest
[KAFKA-16645] - 3.7.0 docker 镜像中的 CVE
[KAFKA-16825] - Jetty 和 netty 中的 CVE 漏洞
[KAFKA-16881] - InitialState 类型泄漏到 Connect REST API OpenAPI 规范中
测试
[KAFKA-15206] - 不稳定的测试 RemoteIndexCacheTest.testClose()
[KAFKA-16293] - Kraft 中的测试日志目录失败
[KAFKA-16472] - Java 中的集成测试实际上不会运行 kraft 案例
[KAFKA-16559] - 允许在 TestKitNodes 中定义每个broker的磁盘数量
[KAFKA-16596] - 不稳定的测试 - org.apache.kafka.clients.ClientUtilsTest.testParseAndValidateAddressesWithReverseLookup()
[KAFKA-16961] - TestKRaftUpgrade 系统测试在 v3.7.1 RC1 中失败
子任务
[KAFKA-16082] - Broker 在 logdir 故障后重新创建重新分配的分区
[KAFKA-16234] - 日志目录故障会自动在另一个 logdir 中重新创建分区
[KAFKA-16297] - 提升未来副本时的竞争条件可能导致分区不可用。
[KAFKA-16365] - AssignmentsManager 对完成通知管理不当