Kafka 社区周报 | 2026-W13

2026-03-23 ~ 2026-03-29

📢 公告 (1)

🗳️ 投票 (1)

💬 讨论 (10)

Apache Kafka 4.3.0 release

20 条回复 · 9 位参与者

讨论主要围绕 Apache Kafka 4.3.0 发布前的各项 KIP 进度追踪与代码冻结管理。发布经理确认 KIP-1035 已完成,KIP-1219 和 KIP-1285 核心功能已合并,但 KIP-909 因进度滞后被移至下一版本。此外,社区成员还讨论了多项 bug 修复和测试补充的合并事宜。

@Mickael Maison: 严格执行发布计划,因 KIP-909 未按时合入且非关键特性,决定将其推迟至 4.4 版本;同时批准了 KIP-1035、KIP-1219 等特性的 cherry-pick 请求。

@Bill Bejeck: KIP-1035 的核心实现和指标 PR 已合并,请求在代码冻结前合入额外的单元测试和社区发现的 bug 修复。

@José Armando García Sancio: KIP-1219 实现已合并,解决了低带宽网络下的控制器不可用问题,已获准 cherry-pick 到 4.3 分支。

KIP-909 确认推迟至 4.4 版本;KIP-1035、KIP-1219 和 KIP-1285 的核心功能已确认进入 4.3.0;后续重点在于代码冻结前的测试补充和文档更新。

Kafka 4.2.1 bug-fix release

8 条回复 · 7 位参与者

Lucas Brutschy 发起关于 Kafka 4.2.1 版本发布的讨论,指出 4.2.0 存在若干阻塞缺陷。社区成员积极响应并补充了需要修复的 Bug,最终确认由 PoAn Yang 接任发布经理(RM)一职。

@Lucas Brutschy: 建议启动 4.2.1 发布流程以修复 4.2.0 中的阻塞缺陷,并最初提议自己担任 RM。

@Edoardo Comar / Lianet Magrans: 补充了需要包含在 4.2.1 中的额外修复项(如 KAFKA-20302 和 KAFKA-20332)。

@PoAn Yang: 主动请缨担任发布经理,并获 Lucas 同意负责后续发布工作。

确认由 PoAn Yang 担任 4.2.1 的发布经理,下一步将发布详细的发布计划。

KIP-1266 Bounding The Number Of RemoteLogMetadata Messages via Compacted RemoteLogMetadata Topic

4 条回复 · 2 位参与者

讨论围绕 KIP-1266 展开,旨在通过压缩机制限制 RemoteLogMetadata 消息数量。目前投票流程已启动,作者正针对 Kamal 提出的压缩导致事件丢失风险及 Schema 字段缺失等问题进行解答和方案完善。

@Lijun Tong: 新功能受元数据版本控制以确保滚动升级安全,并计划增加后台线程清理过时消息。

@Kamal Chandraprakash: 担忧压缩可能导致事件丢失从而产生悬空远程日志段,并询问重启后如何获取缺失字段。

@Lijun Tong: 通过在新 Schema 中添加 endOffset 解决字段缺失问题,旧消息则依赖时间保留策略清理。

投票线程已开启,作者已根据反馈修正 KIP 描述并解释了技术实现细节,等待最终投票结果。

KIP-1301: Support Share Groups (Queue Semantics) in Kafka Connect Sink Connectors

4 条回复 · 3 位参与者

讨论主要围绕 KIP-1301/1302 展开,旨在将 Share Groups(队列语义)集成到 Kafka Connect Sink Connectors 中以提升吞吐量和性能。Shekhar 提议分阶段实施并从 MVP 开始,但社区成员对异步任务处理支持及消息顺序丢失的风险提出了担忧。Shekhar 回应将明确该特性仅适用于幂等且无序要求的连接器,并更新相关注意事项。

@Shekhar Prasad Rajak: 提议利用 KIP-1289 和 KIP-1191 的基础工作,分阶段将 Share Groups 集成到 Sink Connectors,从精简 MVP 开始以快速推进。

@Chris Egerton: 强调必须支持异步处理记录的 Sink Connectors(使用 preCommit),这是该功能的必备特性。

@Ashwin: 指出 Share Groups 无法保证分区级别的消息顺序,需防止依赖顺序的 Connectors(如 JDBC sink)误用,并提醒切换组类型时的名称冲突问题。

Shekhar 计划更新 KIP,明确说明 Share Groups 仅适用于幂等且无序要求的连接器,并补充关于切换消费者组类型时状态主题和组名冲突的注意事项。

KIP-1262: Enable auto-formatting directories

3 条回复 · 2 位参与者

讨论围绕 KIP-1262 展开,旨在移除 Kafka 节点启动前的格式化要求。Jun Rao 建议将适用范围扩大至所有节点,并质疑动态仲裁与静态仲裁在格式化要求上的差异。Kevin Wu 解释了动态仲裁保留格式化要求的必要性,双方就部分措辞和版本细节达成一致,但在动态集群的具体处理逻辑上仍有探讨。

@Jun Rao: 建议将 KIP 范围扩大,移除所有节点(不仅仅是 brokers)的格式化要求,并质疑为何新代码写入 V1 格式而非 V2。

@Jun Rao: 询问静态与动态 KRaft 部署在格式化要求上的具体区别及推荐做法。

@Kevin Wu: 同意修改措辞和版本格式,但指出动态仲裁(kraft.version=1)仍需格式化以安全写入初始 VotersRecord,否则可能导致脑裂或配置错误。

Kevin 同意更新 KIP 文档中的措辞(brokers 改为 nodes)和版本格式(改为 V2)。关于动态仲裁是否移除格式化要求,Kevin 解释了保留该要求的安全原因,并指出操作员可通过先启动再升级 kraft 版本的方式实现无格式化部署。

KIP-1296: Shadow Jetty dependencies to decouple from SLF4J version conflict

1 条回复 · 2 位参与者

KIP-1296 旨在通过 Shadow Jetty 依赖解决 SLF4J 版本冲突以修复 CVE 漏洞。由于 Jetty 团队已在新版本中移除了对 SLF4J 2.x fluent API 的依赖,Kafka 可直接升级 Jetty 而无需 Shadow 处理。因此,提议者宣布该 KIP 不再需要并将撤回。

@Ming-Yen Chung: 最初提议通过 Shadow JAR 模块打包 Jetty 和重定位的 SLF4J 2.x,以解决 Kafka 因版本锁定无法修复 CVE 的问题。

@Chia-Ping Tsai: 询问了若用户替换 Log4j2 实现的影响,以及未来 Kafka 升级 SLF4J 2 时的应对策略。

@Ming-Yen Chung: 更新称 Jetty 团队已移除 SLF4J 2.x API 调用,Kafka 可直接升级,故撤回 KIP。

KIP-1296 将被撤回,待 Jetty 12.0.34 发布后,Kafka 将直接升级 Jetty 版本以解决相关 CVE 问题。

[PR] Added Kirk True image and entry in committers.json [kafka-site]

1 条回复 · 1 位参与者

本次讨论涉及 PR #838,旨在向 kafka-site 仓库添加 Kirk True 的头像及 committers.json 条目。该 PR 由 kirktrue 发起,并已顺利完成合并。

@kirktrue: 发起了添加个人提交者信息和头像的 PR,并完成了合并操作。

PR #838 已成功合并,Kirk True 的提交者信息已更新至 Kafka 官网。

Exception handling in WorkerSinkTask

1 条回复 · 2 位参与者

Martin Andersson 质疑 WorkerSinkTask 中 preCommit() 的异常处理逻辑与 put() 不一致,目前仅回滚偏移量而未检查是否为 RetriableException 或终止任务。Chris Egerton 确认该行为虽不合理,但因向后兼容性考量一直保留,修改需通过 KIP 流程。

@Martin Andersson: preCommit() 抛出异常时的处理方式应与 put() 保持一致,即检查 RetriableException 并在必要时终止任务,而非简单回滚。

@Chris Egerton: 保留当前行为是为了不破坏向后兼容性,若要修改需要提交 KIP 并设计平滑过渡方案。

@Chris Egerton: 建议目前的变通方案是在 preCommit 中捕获异常,若需终止任务则将其从 put 方法中抛出。

目前不会立即修改代码,若要改变现状需提交 KIP(Kafka 改进提案)以解决兼容性问题。

Build failed in Jenkins: Kafka » Kafka Branch Builder » 3.9 #272

0 条回复 · 1 位参与者

Apache Jenkins Server 发出通知,报告 Kafka 3.9 分支构建失败。日志片段显示在 Java 25 环境下,SchedulerTest 和 FeatureZNodeTest 等测试用例均已通过。

@Apache Jenkins Server: 报告构建失败状态,并提供测试执行日志片段,显示可见测试均已通过。

需查看完整的 Jenkins 构建日志链接以定位具体的失败原因。

KIP-646: Serializer API should support ByteBuffer

0 条回复 · 1 位参与者

讨论围绕 KIP-646 展开,旨在让 Serializer API 支持 ByteBuffer,从而支持高级应用的缓冲池管理。Florentin Simion 已通过代码验证了设计可行性,并针对方法命名和性能优化提出了具体建议,Adrian Muraru 对此表示强烈支持。

@Adrian Muraru: 支持该改进,认为这对高级应用非常有用。

@Florentin Simion: 该功能对缓冲池管理至关重要,且已通过 PR 验证了设计可行性。

@Florentin Simion: 建议新方法命名为 serializeToByteBuffer 以避免混淆,并在默认实现中优化数组分配以防性能倒退。

提议获得了积极支持,且已有初步代码实现验证了设计可行性,后续需根据反馈完善命名规范及内部实现细节(如 murmur2 函数支持)。

🎫 JIRA (65)

本周新建 65 个 Issue

本周 JIRA 主要集中在修复大量 Flaky 测试和提升系统稳定性,涵盖 Streams、Consumer 及 Share Group 等多个模块。功能开发方面,重点推进了 Share Group 在 Kafka Connect 中的支持、KIP-1251 的实现以及部分指标与配置的优化。此外,还包含了代码模块重构、依赖库升级(如 Log4j2、Ducktape)及文档改进等维护工作。