Kafka 4.1.0版本发布说明

原创
半兽人 发表于: 2025-10-13   最后更新时间: 2025-10-13 17:05:43  
{{totalSubscript}} 订阅, 46 游览

2025年09月02号,Kafka 4.1.0发布。

以下是Kafka 4.1.0版本中解决的JIRA问题的摘要。有关此版本的完整文档、入门指南和项目信息,请参阅Kafka项目网站。

关于升级的注意事项: 在升级集群之前,请仔细阅读此版本的升级文档。升级说明讨论了有关不兼容性和破坏性更改、性能更改以及可能影响您生产部署Kafka的其他更改的所有关键信息。

新功能

- [KAFKA-8830] - KIP-512: 使Record Headers在onAcknowledgement中可用
- [KAFKA-14121] - AlterPartitionReassignments API应允许调用者指定保留副本因子的选项
- [KAFKA-16758] - 扩展Consumer#close,增加是否离开组的选项
- [KAFKA-17894] - 为协作消费添加额外的指标
- [KAFKA-18120] - KIP-891: 支持多个版本的连接插件
- [KAFKA-18182] - 向Plugins和DelegatingClassLoader API添加VersionRange
- [KAFKA-18215] - 接受用于连接器和转换器的plugin.version配置
- [KAFKA-18419] - 接受用于转换和谓词的plugin.version配置
- [KAFKA-18666] - 控制器端监控代理关闭和启动
- [KAFKA-18863] - 连接器多版本的运行时添加
- [KAFKA-18988] - 更新连接器状态和连接器指标
- [KAFKA-19073] - 向ListTransactions API添加事务ID模式过滤器
- [KAFKA-19223] - 显式的HWM复制

改进

- [KAFKA-806] - 索引可能并不总是遵守log.index.interval.bytes
- [KAFKA-6629] - SegmentedCacheFunctionTest未涵盖会话窗口序列化
- [KAFKA-10790] - 检测/防止生产者网络线程中的死锁- [KAFKA-10864] - 将事务标记转换为使用自动生成的协议
- [KAFKA-13810] - 文档化KafkaProducer.flush()关于回调的行为
- [KAFKA-14402] - 事务服务器端防御
- [KAFKA-15767] - 重构TransactionManager以避免使用ThreadLocal
- [KAFKA-16260] - 在StreamsConfig中弃用window.size.ms和window.inner.serde.class
- [KAFKA-16906] - 为事务添加一致的错误处理
- [KAFKA-17091] - 为Streams接口添加@FunctionalInterface
- [KAFKA-17607] - 添加CI步骤以验证LICENSE-binary
- [KAFKA-17747] - 在机架拓扑变化时触发再平衡
- [KAFKA-17937] - 使用ValueSource重构AbstractFetcherThreadTest以消除不必要的跳过测试
- [KAFKA-18023] - 强制执行Kafka Streams内部主题的显式命名 (KIP-1111)
- [KAFKA-18168] - GlobalKTable在下一次10K事件之前不会检查点恢复的偏移量
- [KAFKA-18173] - 移除重复的assertFutureError
- [KAFKA-18275] - 测试中重新启动broker应使用相同的端口
- [KAFKA-18276] - 将ProducerRebootstrapTest迁移到新的测试基础设施
- [KAFKA-18278] - `run-gradle`的名称和描述不正确
- [KAFKA-18300] - 改进协调器记录
- [KAFKA-18329] - 删除旧的组协调器 (KIP-848)
- [KAFKA-18332] - 修复KafkaRaftClient的复杂性
- [KAFKA-18358] - 在build.gradle中替换已废弃的$buildDir变量
- [KAFKA-18408] - 调整BrokerHeartbeatRequest.json、BrokerRegistrationChangeRecord.json和RegisterBrokerRecord.json中的'tag'字段
- [KAFKA-18409] - ShareGroupStateMessageFormatter应使用ApiMessageFormatter
- [KAFKA-18434] - 丰富连接到控制器时的授权错误信息
- [KAFKA-18467] - 添加创建主题文档
- [KAFKA-18479] - 在UnifiedLog和LogManager中移除keepPartitionMetadataFile
- [KAFKA-18555] - 避免将MetadataCache强制转换为KRaftMetadataCache
- [KAFKA-18570] - 更新Kafka broker启动期间的日志加载指标文档
- [KAFKA-18573] - 添加对OAuth jwt-bearer授权类型的支持- [KAFKA-18576] - 将ConfigType转换为枚举
- [KAFKA-18617] - 在BeforeEach/AfterEach fixtures中支持ClusterInstance
- [KAFKA-18639] - 为testAdminClientApisAuthenticationFailure、testOutdatedCoordinatorAssignment和testThrottledProducerConsumer添加@Flaky注解
- [KAFKA-18658] - 为examples模块添加导入控制
- [KAFKA-18693] - 移除PasswordEncoder
- [KAFKA-18695] - 从所有集成测试中移除quorum=kraft和kip932
- [KAFKA-18703] - 移除未使用的类PayloadKeyType
- [KAFKA-18729] - 改进消费者对通过正则表达式分配的主题的检查
- [KAFKA-18748] - 在PR中单独运行新的集成测试
- [KAFKA-18751] - 当HWM增加时,完成延迟的FETCH请求
- [KAFKA-18760] - 弃用Optional并在公共EndPoint#Listener中返回String
- [KAFKA-18795] - 移除Records#downConvert
- [KAFKA-18798] - ReassignPartitionsCommand使用的副本放置策略与kraft控制器不一致
- [KAFKA-18801] - 移除ClusterGenerator并修订ClusterTemplate文档
- [KAFKA-18804] - 使用工具脚本时移除slf4j警告
- [KAFKA-18847] - 重构OAuth层以提高可重用性
- [KAFKA-18858] - 重构FeatureControlManager以避免使用未初始化的MV
- [KAFKA-18867] - 添加描述空名称主题配置的测试
- [KAFKA-18880] - 移除kafka.cluster.Broker和BrokerEndPointNotAvailableException
- [KAFKA-18881] - 文档说明ConsumerRecord不是线程安全的
- [KAFKA-18904] - 动态创建资源的配置列表令人困惑
- [KAFKA-18907] - 当追加的值太大时,添加合适的错误消息
- [KAFKA-18927] - 移除LATEST_0_11, LATEST_1_0, LATEST_1_1, LATEST_2_0
- [KAFKA-18929] - 当基于时间保留的段具有未来时间戳时,记录警告
- [KAFKA-18933] - 为:clients(不在:core内)添加集成测试
- [KAFKA-18935] - 确保代理在FetchResponse中不会返回null记录
- [KAFKA-18944] - 移除ClusterConfig中未使用的设置器- [KAFKA-18945] - 增强 Admin#describeCluster 和 Admin#describeConfigs 的文档,特别是关于 bootstrap-controller 的部分
- [KAFKA-18947] - 重构 MetadataShell
- [KAFKA-18949] - 修复 consumer 协议中的 testDeleteRecordsAfterCorruptRecords 测试
- [KAFKA-18959] - 将 num_workers 从 9 增加到 14
- [KAFKA-18961] - 考虑基于时间的刷新机制用于服务器端 RE2J 正则表达式
- [KAFKA-18969] - 使用 beforeEach 重写 ShareConsumerTest#setup 并将 ShareConsumerTest 移动到 clients-integration-tests 模块
- [KAFKA-18980] - OffsetMetadataManager#cleanupExpiredOffsets 应记录记录数而不是主题分区数
- [KAFKA-18983] - 确保所有 README.md 文件都在根目录下的 README.md 中被提及
- [KAFKA-18989] - 优化 FileRecord#searchForOffsetWithSize
- [KAFKA-18990] - 优化 BaseQuotaTest#produceUntilThrottled 以避免冗余的 MetricName 创建
- [KAFKA-18999] - 移除 BrokerMetadata
- [KAFKA-19002] - 重写 ListOffsetsIntegrationTest 并将其移动到 clients-integration-test 模块
- [KAFKA-19005] - 改进 DescribeTopicsOptions#partitionSizeLimitPerResponse 的文档
- [KAFKA-19027] - 用 ClusterTestDefaults 替换 ConsumerGroupCommandTestUtils#generator
- [KAFKA-19030] - 从 RequestChannel 中移除 metricNamePrefix
- [KAFKA-19049] - 从代码库中移除 `@ExtendWith(ClusterTestExtensions.class)`
- [KAFKA-19053] - 移除不再在生产环境中使用的 FetchResponse#of
- [KAFKA-19055] - 清理 clients 模块中的 0.10.x 信息
- [KAFKA-19056] - 将 EndToEndClusterIdTest 移动到 server 模块
- [KAFKA-19060] - 在 Clients API JavaDoc 中记录 null 边界情况
- [KAFKA-19064] - 为 group coordinator 事件增加更多的异常处理
- [KAFKA-19068] - 消除创建 ControlRecord 时的重复类型检查
- [KAFKA-19069] - DumpLogSegments 不再导出 LEADER_CHANGE 记录
- [KAFKA-19076] - UnifiedLog#maybeHandleIOException 应将 `String` 替换为 `Supplier`
- [KAFKA-19093] - 将 "Handler on Broker" 更改为 "Handler on Controller" 用于控制器服务器- [KAFKA-19098] - 从PartitionResponse中移除lastOffset
- [KAFKA-19099] - 移除GroupSyncKey, GroupJoinKey和MemberKey
- [KAFKA-19101] - 移除ControllerMutationQuotaManager#throttleTimeMs未使用的参数
- [KAFKA-19102] - 增强group.coordinator.append.linger.ms的文档
- [KAFKA-19103] - 移除OffsetConfig
- [KAFKA-19121] - 将AddPartitionsToTxnConfig, TransactionStateManagerConfig和QuorumConfig从KafkaConfig中移出
- [KAFKA-19136] - 将与元数据相关的配置从KRaftConfigs移到MetadataLogConfig
- [KAFKA-19137] - 使用`StandardCharsets.UTF_8`代替`StandardCharsets.UTF_8.name()`
- [KAFKA-19146] - 合并org.apache.kafka.server.common.OffsetAndEpoch和org.apache.kafka.raft.OffsetAndEpoch
- [KAFKA-19151] - 通过提醒用户flush由log.flush.scheduler.interval.ms触发来增强flush.ms的文档
- [KAFKA-19152] - 添加OAuth流程的顶级文档
- [KAFKA-19170] - 将MetricsDuringTopicCreationDeletionTest迁移到clients-integration-tests模块
- [KAFKA-19178] - 在PluginClassLoader#getResources中用ArrayList替换Vector
- [KAFKA-19180] - 修复挂起的testPendingTaskSize测试
- [KAFKA-19209] - "index.interval.bytes"配置文档也应提及时间索引
- [KAFKA-19214] - 清理RequestManagers.entries()中对Optionals的使用
- [KAFKA-19248] - Kafka Connect中的多版本插件测试
- [KAFKA-19263] - Admin#deletetopics使用的delete.topic.enable文档已过时
- [KAFKA-19267] - ListOffsetsRequest使用的最小版本应为1而不是0
- [KAFKA-19269] - 当delete.topic.enable为false时,不应出现“Unexpected error ..”
- [KAFKA-19273] - 确保在启用分层存储时配置了删除策略
- [KAFKA-19284] - 添加文档以澄清所有partitionsToOffsetAndMetadata方法中null值的行为
- [KAFKA-19287] - 记录所有组协调器指标
- [KAFKA-19295] - 移除AsyncKafkaConsumer事件ID生成- [KAFKA-19297] - 重构AsyncKafkaConsumer在关键部分对Java Streams API的使用
- [KAFKA-19311] - 文档化经典消费者和异步消费者之间commitAsync的不同行为
- [KAFKA-19313] - 用UnifiedLog.UNKNOWN_OFFSET替换LogOffsetMetadata#UNIFIED_LOG_UNKNOWN_OFFSET
- [KAFKA-19314] - 移除不必要的关闭snapshotWriter的代码
- [KAFKA-19322] - 移除接受外部锁的DelayedOperation构造函数
- [KAFKA-19326] - 不稳定的测试GroupMetadataManagerTest.testShareGroupInitializeSuccess()
- [KAFKA-19330] - MockSerializer应该继承Serializer
- [KAFKA-19336] - 升级jackson库,因为v2.16不再维护
- [KAFKA-19349] - 将CreateTopicsRequestWithPolicyTest移动到clients-integration-tests
- [KAFKA-19355] - 从ClusterControlManager中移除interBrokerListenerName

Bug

- [KAFKA-12469] - 通过JMX提取时,度量中的主题名称格式没有保留。
- [KAFKA-15371] - MetadataShell在启动时卡住
- [KAFKA-15900] - 不稳定的测试:testOutdatedCoordinatorAssignment() – org.apache.kafka.clients.consumer.internals.EagerConsumerCoordinatorTest
- [KAFKA-15931] - 如果分层存储读取中断,缓存的事务索引会关闭
- [KAFKA-16407] - 当外键的前一个值为null时,ForeignKey INNER连接忽略外键的变化
- [KAFKA-16434] - 当外键变为null时,ForeignKey INNER连接不会取消设置连接结果
- [KAFKA-17162] - DefaultTaskManagerTest可能会泄漏AwaitingRunnable线程
- [KAFKA-17182] - 使用AsyncKafkaConsumer时,消费者获取会话过快被驱逐
- [KAFKA-17184] - 远程索引缓存日志噪声
- [KAFKA-17431] - KRaft服务器需要有效的静态socketserver配置才能启动
- [KAFKA-17516] - 客户端指标配置资源默认配置未在kafka-configs.sh中显示
- [KAFKA-17792] - 如果字符串看起来像一个数字,头部解析最终会超时并使用大量内存- [KAFKA-17808] - 当添加带有任务的连接器时,出现 InstanceAlreadyExistsException: kafka.admin.client:type=app-info,id=connector-dlq-adminclient-
- [KAFKA-17981] - 为 ConfigCommand 添加集成测试以添加配置 `key=[val1,val2]`
- [KAFKA-17986] - 修复 ConsumerRebootstrapTestProducerRebootstrapTest
- [KAFKA-18064] - 不支持完整性和机密性的 SASL 机制应在 wrap/unwrap 时抛出异常
- [KAFKA-18067] - Kafka StreamsEOS 下可能会泄露生产者客户端
- [KAFKA-18089] - 使用 caffeine > 3.1.1RemoteIndexCacheTest 失败
- [KAFKA-18115] - 性能测试中加载大文件的问题
- [KAFKA-18117] - 在消费者 SubscriptionState 中支持主题 ID
- [KAFKA-18135] - ShareConsumer HB 不支持版本的消息与消费者 HB 混合
- [KAFKA-18274] - 测试中由于套接字通道关闭而无法重新启动控制器
- [KAFKA-18298] - 修复不稳定测试 PlaintextAdminIntegrationTest#testConsumerGroupsDeprecatedConsumerGroupState
- [KAFKA-18345] - 调查是否可以移除或改进 binaryExponentialElectionBackoffMs
- [KAFKA-18371] - TopicBasedRemoteLogMetadataManagerConfig 在日志中暴露敏感配置数据
- [KAFKA-18400] - 在 Java 客户端中格式化/解析日期时不要使用 YYYY
- [KAFKA-18418] - 不稳定测试 KafkaStreamsTest::shouldThrowOnCleanupWhileShuttingDownStreamClosedWithCloseOptionLeaveGroupFalse
- [KAFKA-18440] - 管理员在使用引导控制器时不将 AuthorizationException 转换为致命错误
- [KAFKA-18441] - 修复不稳定测试 KafkaAdminClientTest#testAdminClientApisAuthenticationFailure
- [KAFKA-18483] - 保护 `Loggers` 和 `Log4jController` 避免 `LinkageError`s
- [KAFKA-18493] - 修复 configure :streams:integration-tests 项目错误
- [KAFKA-18498] - Kafka Streams 主线程不释放锁
- [KAFKA-18537] - 修复不稳定测试 RemoteIndexCacheTest#testCleanerThreadShutdown
- [KAFKA-18541] - 修复不稳定测试 KafkaStreamsTelemetryIntegrationTest#shouldPassCorrectMetricsDynamicInstances- [KAFKA-18547] - 在主干中失败的测试 ClientUtilsTest#testParseAndValidateAddressesWithReverseLookup
- [KAFKA-18557] - ShareCoordinatorServiceTest 可以利用 ShareCoordinatorTestConfig#testConfig 来简化代码库
- [KAFKA-18597] - max-buffer-utilization-percent 始终为 0
- [KAFKA-18687] - 新的组协调器在消费者组升级时由于静态成员替换触发分配重新计算
- [KAFKA-18688] - 统一的同构分配并不总是稳定的
- [KAFKA-18713] - Kafka Streams 左连接并不总是发出最后一个值
- [KAFKA-18723] - KRaft 必须处理获取响应中的损坏记录
- [KAFKA-18758] - 在 InvalidConfigurationException 后关闭时出现 NullPointerException
- [KAFKA-18770] - 修复 ReplicationQuotasTest/RequestQuotaTest 中的初始化错误(线程泄漏)
- [KAFKA-18805] - 消费者心跳关闭更改应被锁定
- [KAFKA-18809] - share.coordinator.state.topic.min.isr 未被应用
- [KAFKA-18818] - 在 KRaft 模式下,管理客户端操作后元数据更新有显著延迟
- [KAFKA-18837] - 验证 controller.quorum.fetch.timeout.ms 是一个正值
- [KAFKA-18843] - MirrorMaker2 的 workerId 不是唯一的,而是对所有工作进程使用相同的 ID
- [KAFKA-18845] - 失败的测试 QuorumControllerTest#testUncleanShutdownBrokerElrEnabled
- [KAFKA-18859] - 尊重 UnregisterBrokerResponse 的错误信息
- [KAFKA-18923] - RSM fetchIndex inputStream 中的资源泄漏
- [KAFKA-18962] - 在 GlobalStateStore 重新处理时,StateRestoreListener 的 onBatchRestored 方法被调用并带有 totalRestored 参数
- [KAFKA-18991] - AbstractFetcherThread 应验证获取请求中的当前 leader epoch 与获取状态中的 leader epoch 匹配
- [KAFKA-18992] - kafka-features.sh 错误输出 `upgraded kraft.version to 1`
- [KAFKA-19047] - 如果之前被围栏或关闭,代理注册会变慢
- [KAFKA-19054] - StreamThread 异常处理 SHUTDOWN_APPLICATION 可能会触发带有许多日志的紧循环- [KAFKA-19071] - 远程存储启用的文档不正确
- [KAFKA-19074] - 从ShareFetchResponse中移除缓存的responseData
- [KAFKA-19080] - segment.bytes的约束在主题级别未被强制执行
- [KAFKA-19128] - Kafka Streams在脏关闭时不应获取偏移量
- [KAFKA-19130] - 启动时不将被隔离的代理添加到BrokerRegistrationTracker
- [KAFKA-19131] - 更新RemoteLogReader线程时抛出异常
- [KAFKA-19147] - ConsumerGroupHeartbeat API泄露未经授权主题的主题ID和分区数量
- [KAFKA-19160] - 在大量分区和开放事务的情况下,获取稳定偏移量非常慢
- [KAFKA-19163] - 新的组协调器可能错误地删除具有待处理事务偏移量的组
- [KAFKA-19164] - 新的组协调器不会删除之前具有待处理事务偏移量但已被删除的组
- [KAFKA-19166] - 发布标签成为孤儿
- [KAFKA-19171] - Kafka Streams崩溃并抛出UnsupportedOperationException
- [KAFKA-19192] - 旧的bootstrap.metadata文件会导致与post-KAFKA-18601服务器的问题
- [KAFKA-19195] - 在组描述操作中,所有组ID都被转发到所有组协调器分片
- [KAFKA-19206] - 如果initializeResources()之前失败,ConsumerNetworkThread.cleanup()会抛出NullPointerException
- [KAFKA-19208] - KStream-GlobalKTable连接不应丢弃左空键记录
- [KAFKA-19212] - 修复分区重新分配完成后ElectionWasClean的错误
- [KAFKA-19221] - 不应忽略日志段关闭时的IOException
- [KAFKA-19234] - 对于不存在的主题,在生产请求中代理应返回UNAUTHORIZATION错误
- [KAFKA-19242] - 修复由再平衡期间的竞争条件引起的提交错误
- [KAFKA-19246] - OffsetFetch API在版本1中未正确返回组级别的错误
- [KAFKA-19274] - 删除__consumer_offsets主题后,组协调器分片未卸载
- [KAFKA-19275] - client-state和thread-state指标始终为“不可用”- [KAFKA-19288] - 确保在对先前离开的延迟心跳响应中,新消费者加入尝试不会被覆盖
- [KAFKA-19294] - 修复BrokerLifecycleManager RPC超时问题
- [KAFKA-19300] - 由于GroupAuthorizationException,AsyncConsumer#unsubscribe总是超时
- [KAFKA-19334] - 由于锁文件被删除,MetadataShell意外绕过文件锁
- [KAFKA-19351] - AsyncConsumer#commitAsync应复制输入的偏移量
- [KAFKA-19356] - AsyncConsumer应确保分配分区和订阅的一致性
- [KAFKA-19359] - [8.8] [CVE-2025-48734] [commons-beanutils] [1.9.4]
- [KAFKA-19367] - 如果正在进行的事务被中止,InitProducerId与TV2会双倍增加epoch
- [KAFKA-19373] - 修复消费者集成测试中的协议名称检查
- [KAFKA-19383] - 在应用ClearElrRecord时可能会创建重复的主题记录
- [KAFKA-19386] - 从DelayedOperationPurgatory获取的ExpirationReaper线程名称不正确
- [KAFKA-19392] - `metadata.log.segment.ms`未生效
- [KAFKA-19397] - TransactionManager.handleCompletedBatch抛出NPE
- [KAFKA-19398] - 获取oldest-iterator-open-since-ms时出现错误导致micrometer抛出NPE
- [KAFKA-19407] - 由于领导者的竞争条件,跟随者上出现OffsetsOutOfOrderException
- [KAFKA-19411] - 删除ACL记录可能超过每个用户操作的最大记录数
- [KAFKA-19423] - 减少streams_broker_bounce_test的不稳定因素
- [KAFKA-19427] - __consumer_offsets主题应用了broker配置message.max.bytes,可能导致协调broker分配过多内存并引发OOM
- [KAFKA-19444] - SASL GSSAPI与librdkafka和AK 4.x不兼容
- [KAFKA-19445] - 组协调器和共享协调器运行时指标存在别名
- [KAFKA-19495] - 使用Docker原生镜像时找不到DefaultJwtRetriever
- [KAFKA-19501] - 系统测试应使用17-bullseye而不是17-buster
- [KAFKA-19504] - AdminClient创建并添加第二个指标报告器
- [KAFKA-19520] - 为CVE-2025-48924升级Commons-Lang- [KAFKA-19522] - LastKnownLeader 应仅在未被隔离时当选
- [KAFKA-19576] - 修复日志文件轮转后的状态变更日志文件名拼写错误
- [KAFKA-19642] - KRaft 服务器在启动时无法处理集群级别的配置

任务

- [KAFKA-17671] - 创建更好的事务文档
- [KAFKA-17830] - 覆盖 TBRLMM 初始化失败场景的单元测试
- [KAFKA-18572] - 更新 Kafka Streams 指标文档
- [KAFKA-18683] - 当切片起始位置移动时,文件记录切片出现错误
- [KAFKA-18787] - RemoteIndexCache 在初始化时无法移除无效文件
- [KAFKA-18826] - 添加全局线程指标
- [KAFKA-18924] - 运行存储模块测试会产生一个 storage/storage.log 文件
- [KAFKA-18971] - 更新 AK 4.0AK 系统测试
- [KAFKA-19058] - 运行 streams/streams-scala 模块测试会产生一个 streams-scala.log 文件
- [KAFKA-19100] - 在 AclApis 中使用 ProcessRole.toString 而不是 String
- [KAFKA-19264] - 移除 RemoteLogManagerConfig 中的线程池大小回退

测试

- [KAFKA-13747] - 重构 TopologyTest 以通过参数化测试不同类型的存储
- [KAFKA-15474] - AbstractCoordinator.testWakeupAfterSyncGroupReceivedExternalCompletion 似乎不稳定
- [KAFKA-16918] - TestUtils#assertFutureThrows 应该使用 future.get 并带有超时
- [KAFKA-17114] - DefaultStateUpdater::handleRuntimeException 应该在调用 `addToExceptionsAndFailedTasksThenClearUpdatingAndPausedTasks` 之前更新 isRunning
- [KAFKA-17171] - 为 kraft 模式下的 `STATIC_BROKER_CONFIG` 添加测试用例
- [KAFKA-17421] - 为 ConsumerRecord#leaderEpoch 添加集成测试
- [KAFKA-18025] - ShareConsumerTest testAcquisitionLockTimeoutOnConsumer 不稳定
- [KAFKA-18033] - ShareConsumerTest 不稳定
- [KAFKA-18035] - TransactionsTest testBumpTransactionalEpochWithTV2Disabled 在主分支上失败
- [KAFKA-18267] - 为 CloseOption 添加测试
- [KAFKA-18310] - AbstractCoordinatorTest 不稳定
- [KAFKA-18546] - 将 ClientUtilsTest#testParseAndValidateAddressesWithReverseLookup 改为模拟测试
- [KAFKA-18568] - ClientIdQuotaTest 不稳定- [KAFKA-18606] - 不稳定的测试 DeleteSegmentsByRetentionTimeTest#executeTieredStorageTest
- [KAFKA-18657] - 不稳定的 SharePartitionManagerTest
- [KAFKA-18777] - 在 BrokerMetricNamesTest 中添加 `PartitionsWithLateTransactionsCount`
- [KAFKA-18914] - 将 ConsumerRebootstrapTest 迁移到新的测试基础设施
- [KAFKA-18915] - 将 AdminClientRebootstrapTest 迁移到新的测试基础设施
- [KAFKA-18975] - 将 clients-integration-test 移出核心模块
- [KAFKA-19032] - 删除 TestInfoUtils.TestWithParameterizedQuorumAndGroupProtocolNames
- [KAFKA-19036] - 重写 LogAppendTimeTest 并将其移动到存储模块
- [KAFKA-19091] - 不稳定的测试 DelayedFutureTest#testDelayedFuture
- [KAFKA-19153] - 添加 OAuth 集成测试
- [KAFKA-19220] - 添加测试以确保默认情况下内部配置不会通过公共 API 返回
- [KAFKA-19229] - 修复不稳定的 testShareGroupDescribeWithGroupDescribeAndTopicDescribeAcl 和 testShareGroupDescribeWithoutGroupDescribeAcl 测试
- [KAFKA-19240] - 将 MetadataVersionIntegrationTest 移动到 clients-integration-tests 模块
- [KAFKA-19352] - PlaintextConsumerCommitTest > testCommitAsyncCompletedBeforeConsumerCloses [1] 类型=Raft-隔离

子任务

- [KAFKA-4650] - 提高 org.apache.kafka.streams.kstream.internals 的测试覆盖率
- [KAFKA-10551] - 在 Produce 请求中支持主题 ID
- [KAFKA-14145] - 加快 KRaft 主题分区中高水位的传播
- [KAFKA-14484] - 将 UnifiedLog 移动到存储模块
- [KAFKA-14485] - 将 LogCleaner 移动到存储模块
- [KAFKA-14486] - 将 LogCleanerManager 移动到存储模块
- [KAFKA-14523] - 将 RemoteLogManager 移动到存储模块
- [KAFKA-14690] - 在 OffsetCommit API 中添加 TopicId
- [KAFKA-14691] - 在 OffsetFetch API 中添加 TopicId
- [KAFKA-16524] - KIP-853 的指标
- [KAFKA-16538] - 支持 kraft.version 的 UpdateFeatures,以便从静态仲裁组转换为动态仲裁组
- [KAFKA-16718] - 添加 AdminClient.deleteShareGroupOffsets
- [KAFKA-16720] - 添加 AdminClient.listShareGroupOffsets
- [KAFKA-16729] - 支持读取提交的隔离级别- [KAFKA-16894] - 定义开关以启用共享组预览
- [KAFKA-17039] - KIP-919 支持 `unregisterBroker`
- [KAFKA-17351] - 验证 Share Partition 中压缩主题的起始偏移量处理
- [KAFKA-17539] - 实现 registerMetricsForSubscription
- [KAFKA-17565] - 将 MetadataCache 接口移动到 metadata 模块
- [KAFKA-17809] - 修复不稳定测试:testExplicitAcknowledgementCommitAsync
- [KAFKA-17836] - 将 RackAwareTest 移动到 server 模块
- [KAFKA-17856] - 将 ConfigCommandTestConfigCommandIntegrationTest 移动到 tool 模块
- [KAFKA-17897] - 弃用 Admin.listConsumerGroups
- [KAFKA-17968] - 创建 VerifiableShareConsumer
- [KAFKA-18042] - 提前拒绝具有较低生产者纪元的生产请求
- [KAFKA-18170] - 对冷共享分区进行定期快照
- [KAFKA-18172] - 将 RemoteIndexCacheTest 移动到 storage 模块
- [KAFKA-18198] - 禁止在初始 ShareFetchRequest 上附带确认
- [KAFKA-18202] - 当分区没有事务 v2 幂等生产者的生产者 ID 状态时,拒绝非零序列
- [KAFKA-18207] - 创建 TransactionCoordinatorRecordSerde 以处理事务记录
- [KAFKA-18232] - 修剪共享状态主题指标
- [KAFKA-18246] - 通过添加多版本配置修复 ConnectRestApiTest.test_rest_api
- [KAFKA-18260] - 为 share.auto.offset.reset=by_duration 添加集成测试到 ShareConsumerTest
- [KAFKA-18273] - 实现 kafka-share-groups.sh --describe --verbose
- [KAFKA-18301] - 使协调器记录成为一级公民
- [KAFKA-18302] - 更新 CoordinatorRecord
- [KAFKA-18303] - 更新共享协调器
- [KAFKA-18304] - 引入 JSON 转换器生成器
- [KAFKA-18308] - 更新 CoordinatorSerde
- [KAFKA-18370] - 修复或删除与 Zk Broker 配置相关的 ReplicaFetcherThreadTest 测试
- [KAFKA-18392] - 要求 ShareGroupHeartbeat 使用客户端生成的成员 ID
- [KAFKA-18404] - 从 DelayedShareFetch 中移除 partitionMaxBytes
- [KAFKA-18428] - 测量共享消费者性能- [KAFKA-18433] - 调整ShareFetchRequest RPC以优化获取和确认
- [KAFKA-18449] - 在reconfigure-server.properties中添加共享组状态配置
- [KAFKA-18452] - 在共享获取中集成共享获取批次大小
- [KAFKA-18457] - 更新DumpLogSegments以使用协调器记录JSON转换器
- [KAFKA-18488] - 为共享消费添加额外的协议测试
- [KAFKA-18494] - 在共享分区初始化期间将共享分区缓存状态中的间隙初始化为新的可用批次
- [KAFKA-18508] - 删除ControllerContext
- [KAFKA-18513] - 在ShareConsumerTest中添加对共享组状态主题的记录计数验证
- [KAFKA-18522] - 根据获取的记录限制获取记录批次
- [KAFKA-18529] - ConsumerRebootstrapTest应针对异步消费者运行
- [KAFKA-18552] - 从KafkaApisTest中删除不必要的版本检查
- [KAFKA-18558] - 仅在非空确认的情况下,在ShareFetchRequest中包含来自先前订阅的分区
- [KAFKA-18559] - 清理FinalizedFeatures
- [KAFKA-18590] - 清理DelegationTokenManager
- [KAFKA-18593] - 从MetadataCache中删除ZkCachedControllerId
- [KAFKA-18594] - 清理BrokerLifecycleManager
- [KAFKA-18604] - 更新事务协调器
- [KAFKA-18612] - 更新ApiMessageFormatter
- [KAFKA-18616] - 重构DumpLogSegments的MessageParsers
- [KAFKA-18618] - 减少共享会话处理程序的粘性
- [KAFKA-18620] - 删除UnifiedLog#legacyFetchOffsetsBefore
- [KAFKA-18629] - 实现DeleteShareGroups
- [KAFKA-18630] - 清理ReplicaManagerBuilder
- [KAFKA-18632] - ShareConsumerTest多代理测试
- [KAFKA-18651] - 核心流特定的代理配置
- [KAFKA-18653] - 修复模拟和潜在线程泄漏问题,防止无声的RejectedExecutionException
- [KAFKA-18694] - 将合适的类迁移到coordinator-common模块中的记录
- [KAFKA-18700] - 将SnapshotPath、EntryOffsetAndEpochLogFetchInfo和LogAppendInfo迁移到记录类
- [KAFKA-18706] - 将AclPublisher移动到metadata模块- [KAFKA-18712] - 将Endpoint移动到server模块
- [KAFKA-18728] - 将ListOffsetsPartitionStatus移动到server模块
- [KAFKA-18732] - 为共享获取实现broker主题指标
- [KAFKA-18733] - 为共享获取实现共享组指标
- [KAFKA-18734] - 为共享获取实现共享分区指标
- [KAFKA-18738] - 重新审视DescribeShareGroupOffsets API以支持请求中的多个GroupId
- [KAFKA-18755] - 使kafka-share-groups.sh中的超时与其它组相关工具一致
- [KAFKA-18756] - 向系统测试中添加共享组配置
- [KAFKA-18757] - 创建符合KIP-932描述的全功能SimpleAssignor
- [KAFKA-18761] - 当成员存在时,kafka-share-groups.sh --describe仅显示偏移信息
- [KAFKA-18763] - 解决test_share_single_topic_partition系统测试中的不稳定问题
- [KAFKA-18764] - 集群授权的共享状态RPC在未授权时应进行限流
- [KAFKA-18767] - 为shareConsumer添加客户端配置检查
- [KAFKA-18772] - 为Docker定义共享组配置默认值
- [KAFKA-18779] - 在客户端验证来自broker的ShareFetch和ShareAcknowledge API响应
- [KAFKA-18791] - 将默认提交消息设置为PR标题 + 正文
- [KAFKA-18796] - 修复不稳定测试testAcquisitionLockOnOffsetWithWriteShareGroupStateFailure
- [KAFKA-18799] - 移除AdminUtils
- [KAFKA-18808] - 添加测试以确保名称不等于默认配额
- [KAFKA-18811] - 允许将Consumer Configs传递给VerifiableShareConsumers的AdminClientProperties
- [KAFKA-18814] - 添加对客户端插件的支持
- [KAFKA-18815] - 添加对Connect的支持
- [KAFKA-18817] - ShareGroupHeartbeat和ShareGroupDescribe API必须检查主题描述
- [KAFKA-18828] - 更新组协调器中的共享组指标代码
- [KAFKA-18829] - 当poll返回空批次时,不能使用显式确认
- [KAFKA-18832] - 当MaxBytes小于记录大小时,ShareFetch行为似乎不正确
- [KAFKA-18855] - MemoryRecords应具有切片API- [KAFKA-18878] - 实现ShareSessionCache和DelayedShareFetchMetrics指标以支持共享获取
- [KAFKA-18882] - 移除BaseKey、TxnKey和UnknownKey
- [KAFKA-18888] - 添加对Authorizer的支持
- [KAFKA-18889] - 使ShareFetchResponse中的记录不可为空
- [KAFKA-18891] - 添加对RemoteLogMetadataManager和RemoteStorageManager的支持
- [KAFKA-18892] - 添加对ClientQuotaCallback的支持
- [KAFKA-18893] - 添加对ReplicaSelector的支持
- [KAFKA-18899] - 限制ShareConsumer.commitAsync的重试时间
- [KAFKA-18900] - 创建一个消费者配置,用于在隐式和显式确认之间选择
- [KAFKA-18901] - 改进share group SimpleAssignor的重新分配
- [KAFKA-18902] - 实现ShareConsumer选项,在存在未确认记录时抛出异常
- [KAFKA-18909] - 将DynamicThreadPool移动到服务器模块
- [KAFKA-18910] - 移除kafka.utils.json
- [KAFKA-18918] - 在onComplete异常时持有共享分区锁
- [KAFKA-18931] - 调试当在代理故障期间关闭共享消费者时,kafka-share-groups.sh --describe --members与实际情况不匹配的情况
- [KAFKA-18932] - 从共享获取请求中移除分区最大字节使用量
- [KAFKA-18936] - 当记录大于获取的最大字节数时,共享获取卡住
- [KAFKA-18942] - 使用committer-tools将审阅者添加到PR正文中
- [KAFKA-18946] - 将BrokerReconfigurable和DynamicProducerStateManagerConfig移动到服务器模块
- [KAFKA-18954] - 添加一个指标来跟踪基于ELR的选举
- [KAFKA-18984] - 使用kafka-client-metrics.sh无法重置interval.ms
- [KAFKA-19004] - 将DelayedDeleteRecords移动到server-common模块
- [KAFKA-19015] - 在连接断开时从缓存中移除共享会话
- [KAFKA-19017] - 在verifiable_share_consumer.py中将consumer-config更改为command-config
- [KAFKA-19018] - 在Share Fetch Response中发送获取时间
- [KAFKA-19019] - 验证具有分层存储的Share Fetch
- [KAFKA-19043] - 将DelayedRemoteListOffsets移动到存储模块- [KAFKA-19057] - 在 AK 4.1 中稳定 KIP-932 Kafka 协议 RPC 定义
- [KAFKA-19062] - ShareConsumer 应该与异步消费者对关闭超时的处理保持一致
- [KAFKA-19063] - 在共享获取请求中发送 MaxRecords
- [KAFKA-19075] - 在 ShareGroupConfig 的 extractShareGroupConfigMap 方法中包含所有共享组动态配置
- [KAFKA-19085] - SharePartitionManagerTest 测试多个并发共享获取时抛出静默异常且工作不正确
- [KAFKA-19087] - 将 TransactionState 移动到 transaction-coordinator 模块
- [KAFKA-19090] - 将 DelayedFutureDelayedFuturePurgatory 移动到 server 模块
- [KAFKA-19109] - 不要在 kafka-metadata-quorum 描述状态中打印 null
- [KAFKA-19110] - 添加缺失的 Streams-consumer 集成单元测试
- [KAFKA-19113] - 将 DelegationTokenManager 迁移到 server 模块
- [KAFKA-19116] - 删除共享组偏移量后,位置未按预期重置
- [KAFKA-19119] - 移动 ApiVersionManager/SimpleApiVersionManager
- [KAFKA-19133] - 支持在单个共享获取请求中获取多个远程获取主题分区
- [KAFKA-19135] - 添加 IQ 支持 - 从功能分支移动
- [KAFKA-19141] - 在 OffsetCommit 记录中持久化主题 ID
- [KAFKA-19145] - 将 LeaderEndPoint 移动到 server 模块
- [KAFKA-19154] - 如果请求的主题 ID 与持久化的主题 ID 不匹配,则返回 INVALID_OFFSET
- [KAFKA-19156] - 移除 group.share.max.groups 配置
- [KAFKA-19157] - 添加 group.share.max.share.sessions 配置
- [KAFKA-19158] - 为“共享会话限制已达到”添加一个新的错误代码
- [KAFKA-19159] - 从缓存中移除基于时间的共享会话驱逐
- [KAFKA-19162] - 发送到 broker 的拓扑描述包含非确定性排序的主题配置
- [KAFKA-19169] - 增强 AuthorizerIntegrationTest 以支持共享组 API
- [KAFKA-19173] - 为流组添加 `Feature`
- [KAFKA-19182] - 将 SchedulerTest 移动到 server 模块
- [KAFKA-19183] - 用 ConcurrentHashMap 替换 Pool
- [KAFKA-19184] - 文档说明 kraft 版本升级- [KAFKA-19189] - 在共享协调器中处理__share_group_state主题的删除
- [KAFKA-19198] - 删除分配给共享组的主题可能导致空指针异常
- [KAFKA-19201] - 处理已初始化共享组状态的主题的删除
- [KAFKA-19204] - 协调器运行时操作中的超时可能会破坏共享组的初始化和删除
- [KAFKA-19207] - 将ForwardingManagerMetrics和ForwardingManagerMetricsTest移动到服务器模块
- [KAFKA-19215] - 在DelayedShareFetch中干净地处理共享分区获取锁,以避免成员错误地释放共享分区的获取锁
- [KAFKA-19216] - 消除kafka.server.share.SharePartitionTest中的不稳定性
- [KAFKA-19217] - ShareConsumerTest.testComplexShareConsumer不可靠
- [KAFKA-19218] - 在读取共享组状态摘要响应中添加缺失的leader epoch
- [KAFKA-19226] - 添加test_console_share_consumer系统测试
- [KAFKA-19227] - 修复带有piggyback确认的共享获取性能问题
- [KAFKA-19231] - 处理共享会话缓存满时的获取请求
- [KAFKA-19232] - 在客户端中处理达到共享会话限制的错误
- [KAFKA-19241] - 在ShareFetchAcknowledgeRequestTest中后续的共享请求中重用同一个套接字
- [KAFKA-19245] - 更新队列配置预览的默认值
- [KAFKA-19251] - 解决不稳定测试ShareConsumerTest.testMultipleConsumersInGroupConcurrentConsumption
- [KAFKA-19253] - 使用特性监听器改进共享版本的元数据处理
- [KAFKA-19258] - 释放因连接断开而被驱逐的成员的已获取记录
- [KAFKA-19260] - 将LoggingController移动到服务器模块
- [KAFKA-19268] - SharePartitionManagerTest测试中缺少的模拟
- [KAFKA-19271] - 为启用KIP-1071的消费者注入测试包装器的私有接口
- [KAFKA-19281] - 添加元数据版本检查以启用共享协调器计时任务
- [KAFKA-19285] - 提高SharePartitionManager的测试覆盖率- [KAFKA-19290] - 在协议请求和响应中利用mapKey优化
- [KAFKA-19291] - 增加炼狱中远程存储共享获取请求的超时时间
- [KAFKA-19302] - 将ReplicaState和Replica移至服务器模块
- [KAFKA-19310] - 缺少与Memory Records切片相关的DelayedShareFetchTest测试的模拟
- [KAFKA-19312] - 共享分区获取锁的并发线程释放
- [KAFKA-19316] - 添加share_group_command_test.py系统测试
- [KAFKA-19317] - 修复不稳定测试:ShareConsumerTest.testAlterReadUncommittedToReadCommittedIsolationLevel()
- [KAFKA-19320] - 添加share_consume_bench_test.py系统测试
- [KAFKA-19321] - 添加share_consumer_performance.py及相关系统测试
- [KAFKA-19328] - SharePartitionManagerTest testMultipleConcurrentShareFetches doAnswer链需要验证
- [KAFKA-19337] - ShareCoordinatorShard.generateShareStateRecord中的错误导致stateEpoch更新遗漏
- [KAFKA-19338] - 如果共享分区未初始化,共享协调器读取状态和写入状态应返回错误
- [KAFKA-19342] - 为修改共享组偏移量添加AuthorizerIntegrationTest
- [KAFKA-19344] - 将可分配共享分区方法从描述者移到组规范
- [KAFKA-19346] - 将LogReadResult移至服务器模块
- [KAFKA-19353] - 预览文档
- [KAFKA-19358] - 不要在share_consumer_test.py测试中通过VerifiableShareConsumer更新共享组偏移重置策略
- [KAFKA-19369] - 添加group.share.assignors配置
- [KAFKA-19370] - 创建JMH基准测试以评估共享组分配器的性能
- [KAFKA-19389] - 已完成的共享获取请求高内存消耗
- [KAFKA-19414] - 从4.1版本中移除公共API
- [KAFKA-19453] - 处理组协调器中不存在的共享组记录重放

REF

https://dlcdn.apache.org/kafka/4.1.0/RELEASE_NOTES.html

更新于 2025-10-13
在线,3小时前登录

查看kafka更多相关的文章或提一个关于kafka的问题,也可以与我们一起分享文章