Kafka 社区周报 | 2026-W12

2026-03-16 ~ 2026-03-22

📢 公告 (2)

🗳️ 投票 (6)

💬 讨论 (10)

Apache Kafka 4.3.0 release

12 条回复 · 7 位参与者

讨论围绕 Apache Kafka 4.3.0 的发布进度展开,发布经理 Mickael Maison 宣布已进入功能冻结阶段并切出了 4.3 分支。多位开发者请求将 KIP-1285、KIP-909 等未及时合并的功能通过 cherry-pick 方式合入新分支,发布经理同意在尽快完成合并的前提下予以批准。下一步重点是确保相关 KIP 尽快合入,并准备迎接 4 月 8 日的代码冻结。

@Mickael Maison: 宣布 4.3 分支已切出,同意部分 KIP 在短期内合并后 cherry-pick 进分支,但警告若无法尽快完成将推迟至下个版本。

@Matthias J. Sax & Chia-Ping Tsai & Bill Bejeck: 分别请求将 KIP-1285、KIP-909 和 KIP-1035 的待处理 PR 合入 4.3 版本,以避免功能缺失。

@David Jacot: 确认 KIP-1263 将拆分实施,仅 batching 功能进入 4.3,offloading 功能推迟至 4.4。

发布经理正在追踪 KIP-909、1035、1219、1285 的最终合入状态,若不能尽快完成将被移出 4.3 版本;下一里程碑为 4 月 8 日的代码冻结。

[PR] MINOR: Update downloads page for 4.0.2 [kafka-site]

3 条回复 · 2 位参与者

该讨论主要关于更新 Kafka 官网的下载页面以发布新版本。审阅者指出发布说明链接应指向归档地址而非下载镜像,作者采纳建议并修正后合并了该 PR。

@jlprat: 指出 Release Notes 的链接应指向 archive 归档地址,而非 closer.lua,以保持与过往版本格式一致。

@viktorsomogyi: 接受了建议,表示会修复链接问题。

PR #837 已成功合并,网站下载页面更新完成。

Gradle Webinar recording

2 条回复 · 3 位参与者

David Arthur 分享了关于 Kafka 构建改进的 Gradle 网络研讨会录像链接,内容涵盖 CI 构建的现代化改进。社区成员对分享表示感谢,并认为该资料具有学习价值。

@David Arthur: 发布了关于 Kafka 构建改进的网络研讨会录像,内容与去年 Community Over Code NA 展示的一致。

@Chia-Ping Tsai: 称赞演讲很棒,感谢将工具引入社区。

@jian fu: 感谢分享,认为这对学习很有价值。

无具体结论或下一步行动,仅为资源分享与致谢。

Request for Confluence edit access to create Kafka KIP

1 条回复 · 2 位参与者

Nilesh 请求获取 Confluence 编辑权限以创建 KIP 页面,最初因 Jira 和 Confluence 系统独立而遇到权限问题。经过沟通和排查,Matthias 最终解决了权限配置问题。

@nileshkumar3: 请求 Confluence 编辑权限以便为 KAFKA-20199 创建 KIP 页面,虽然能登录但最初无法编辑。

@Matthias J. Sax: 指出 Jira 和 Confluence 是独立系统,需分别申请权限,最终确认已为用户配置好编辑权限。

问题已解决,nileshkumar3 现已拥有 Confluence 编辑权限。

KIP-1241: Reduce tiered storage redundancy with delayed upload

1 条回复 · 2 位参与者

讨论围绕 KIP-1241 展开,旨在通过延迟上传机制解决 Kafka 分层存储中本地与远程数据重复存储导致的资源浪费问题。Jian Fu 提出了该提案并回应了 Chia-Ping Tsai 关于配置动态性和监控指标的疑问。目前作者已更新文档澄清配置属性,并建议暂不新增监控指标。

@Jian Fu: 指出当前分层存储在本地保留期内立即上传数据造成冗余,提议引入延迟上传以降低成本。

@Chia-Ping Tsai: 询问配置是否支持动态更新,并建议增加指标以追踪延迟上传的数据量。

@Jian Fu: 确认配置为动态 Broker 级并已更新文档;认为监控需求不紧迫,建议未来通过 KIP-1187 API 查询,暂不增加新指标。

作者已根据反馈更新 KIP 文档以明确配置属性;关于新增监控指标,作者建议暂缓实施,后续可利用 KIP-1187 API 满足查询需求。

KIP-1262: Enable auto-formatting directories

1 条回复 · 2 位参与者

讨论围绕 KIP-1262 展开,旨在移除 Kafka 节点启动前必须格式化目录的要求。José 对集群 ID 的处理方式、控制器恢复机制及实现细节提出了疑问,Kevin 则澄清了元数据版本的默认策略,并探讨了 Bootstrap Controller 在未格式化情况下的初始化挑战。

@José Armando García Sancio: 询问 KIP 是否完全移除了格式化需求,并质疑 `kafka-storage format` 命令的具体实现细节(如写入 meta.properties 还是 checkpoint)。

@José Armando García Sancio: 指出 Bootstrap Controller 在缺少 meta.properties 时的异常处理逻辑需考虑磁盘故障后的自动恢复场景。

@Kevin Wu: 确认将默认使用最新 MV 以支持写入 ClusterIdRecord,并正在寻求解决 Bootstrap Controller 在未格式化时如何处理“空”集群 ID 的方案。

Kevin 将根据反馈修改 KIP 文档(如移除旧 MV 相关描述),但关于 Bootstrap Controller 如何在无预先格式化的情况下正确初始化集群 ID 仍需进一步明确技术方案。

Usage of initial controllers parameter when formatting scaled up controller storage

1 条回复 · 2 位参与者

讨论了在格式化扩容控制器存储时使用 `--initial-controllers` 参数的风险。Luke Chen 指出这可能导致脑裂问题,建议新增控制器应使用 `--no-initial-controllers` 进行格式化,Paolo Patierno 对此表示认同。

@Luke Chen: 使用 `--initial-controllers` 格式化新增控制器会让其误认为自己是投票者,若无法连接现有仲裁,可能形成独立仲裁导致脑裂。

@Luke Chen: 应遵循文档建议,对新增控制器使用 `--no-initial-controllers` 格式化以规避风险。

@Paolo Patierno: 同意 Luke 的分析,认为其逻辑合理。

初步结论是新增控制器节点不应使用 `--initial-controllers` 参数,而应使用 `--no-initial-controllers`。

Kafka performance degradation between 3.9.2 and 4.0.0

1 条回复 · 2 位参与者

Tomasz Forys 报告 kafka-clients 从 3.9.2 升级到 4.x 版本后出现严重性能下降(总耗时增加约 4-5 倍),并已排除 Spring-kafka 的因素。Sanghyeok An 推测性能下降可能与 `linger.ms` 默认值从 0 变更为 5 有关,建议通过显式设置参数进行验证。

@Tomasz Forys: 确认 4.x 版本客户端相比 3.9.2 存在显著性能退化,测试显示总耗时从约 31 秒激增至 130-160 秒。

@Sanghyeok An: 指出 3.9.2 版本 `linger.ms` 默认值为 0,而 4.x 版本默认值变为 5,这可能是导致延迟增加的原因。

建议发件人显式设置 `linger.ms=0` 重新运行测试,以确认性能下降是否由该默认配置变更引起。

KIP-1279: Cluster Mirroring

1 条回复 · 2 位参与者

讨论主要围绕 KIP-1279 集群镜像功能的设计细节展开,重点涉及 Leader Epoch 重写策略、分层存储支持及日志截断机制。Jun Rao 提出了关于 Epoch 一致性和实现细节的担忧,Luke Chen 回应称已更新设计不再重写 Epoch,并解释了截断流程。

@Jun Rao: 质疑 Epoch 重写对消费者故障转移时偏移量一致性的影响,并指出 AbstractFetcherThread 可能不适合用于集群镜像。

@Luke Chen: 确认已更新设计以支持不洁 Leader 选举,将不再重写 Leader Epoch。

@Luke Chen: 解释了日志截断流程,通过 MirrorMetadataManager 查询状态并从源集群获取最后镜像偏移量。

初步结论是修改设计以不再重写 Leader Epoch,下一步将完善日志截断的内部实现并补充命令工作流文档。

KIP-1282: Prevent data loss during partition expansion for dynamically added partitions

0 条回复 · 1 位参与者

讨论围绕 KIP-1282 展开,旨在解决分区扩容时的数据丢失问题。黃竣陽提议简化方案,统一使用组创建时间戳进行偏移量查找,消除了复杂的条件判断。Chia-Ping Tsai 认可该简化,但指出文档需更新以匹配讨论并补充时间偏差风险,作者随后表示已更新 KIP。

@黃竣陽: 提议简化逻辑,统一使用组创建时间戳进行偏移量查找,以替代原有的条件分支判断,使行为更符合语义且可预测。

@Chia-Ping Tsai: 赞赏简化方案,但指出 KIP 页面内容滞后(如仍提及两个时间戳),建议更新文档以匹配讨论内容并补充服务器时间偏差的风险说明。

作者已根据反馈更新了 KIP 文档,目前正寻求社区的进一步反馈。

🎫 JIRA (45)

本周新建 45 个 Issue

本周 JIRA 主要集中在 Kafka Streams 的功能增强与状态管理改进,以及 Share Group 相关特性的修复与优化。社区还重点关注了测试稳定性,修复了多个 Flaky 测试并重构了测试工具类,同时完成了 Jetty 和 Zookeeper 的依赖升级以修复安全漏洞。此外,文档更新与构建工具的改进也是本周的工作内容之一。