2024年11月06日,Kafka 3.9.0发布。
以下是Kafka 3.9.0版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程。
有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。
新功能
[KAFKA-15132] - 实现分层存储的禁用和重新启用
[KAFKA-16228] - 为转储日志工具添加远程日志元数据标记
改进
[KAFKA-7339] - 从 JUnit 4 迁移到 JUnit 5
[KAFKA-7438] - 用 Mockito 替换 EasyMock 和 PowerMock
[KAFKA-10787] - 在 Java 源中引入导入顺序
[KAFKA-10816] - Connect REST API 应具有可用作就绪探测的资源
[KAFKA-14094] - KIP-853:KRaft 控制器成员资格更改
[KAFKA-15265] - 分层存储的远程复制/获取配额。
[KAFKA-15406] - 从 KIP-938 添加 ForwardingManager 指标
[KAFKA-15773] - 应验证组协议配置
[KAFKA-15857] - 在 OffsetSpec 中引入 LocalLogStartOffset 和 TieredOffset。
[KAFKA-16448] - 为处理过程中发生的异常添加 Kafka Streams 异常处理程序 (KIP-1033)
[KAFKA-16629] - 向 ConfigCommandIntegrationTest 添加与代理相关的测试
[KAFKA-16650] - 为 Admin#abortTransaction 添加集成测试
[KAFKA-16652] - 为提供零 ClusterConfig 的 ClusterTemplate 添加单元测试
[KAFKA-16666] - 将 `TransactionLogMessageFormatter`、GroupMetadataMessageFormatter` 和 `OffsetsMessageFormatter` 迁移到工具模块
[KAFKA-16669] - 生成 DescribeAclsResource 时删除额外的集合副本
[KAFKA-16781] - 在控制器节点中公开 advertised.listeners
[KAFKA-16791] - 向 ClusterTestExtensions 添加线程检测
[KAFKA-16879] - SystemTime 应使用单例模式
[KAFKA-16884] - 使用 AbstractConfig 重构 RemoteLogManagerConfig
[KAFKA-16885] - 考虑将 RemoteLogManagerConfig#enableRemoteStorageSystem 重命名为 RemoteLogManagerConfig#isRemoteStorageSystemEnabled
[KAFKA-16897] - 将 OffsetIndexTest 和 OffsetMapTest 移至存储模块
[KAFKA-16898] - 将 TimeIndexTest 和 TransactionIndexTest 移至存储模块
[KAFKA-16909] - 使用 AbstractConfig 重构 GroupCoordinatorConfig
[KAFKA-16917] - DescribeTopicsResult 应使用可变映射以保持兼容性
[KAFKA-16975] - 创建 `__cluster_metadata` 的错误消息不应为“授权失败”
[KAFKA-16989] - 使用 StringBuilder 而不是字符串连接
[KAFKA-17021] - 将 AclCommandTest 迁移到新的测试基础设施
[KAFKA-17022] - 修复 KafkaApis#handleFetchRequest 中容易出错的问题
[KAFKA-17032] - NioEchoServer 应生成有意义的 id 而不是增量数字
[KAFKA-17034] - 调整 `FeatureUpdate` 中的一些描述
[KAFKA-17042] - 迁移文档应提醒用户在添加 broker.id 时设置“broker.id.generation.enable”
[KAFKA-17046] - 将 netty 版本升级到 4.1.111.Final
[KAFKA-17051] - ApiKeys#toHtml 应排除最新版本不稳定的 API
[KAFKA-17059] - 从中删除 `dynamicConfigOverride` KafkaConfig
[KAFKA-17060] - 将 LegacyKafkaConsumer 重命名为 ClassicKafkaConsumer
[KAFKA-17061] - 在大型集群上注册后,KafkaController 需要很长时间才能连接到新添加的代理
[KAFKA-17073] - 在 3.9 中弃用 ReplicaVerificationTool
[KAFKA-17081] - 调整 GroupCoordinatorConfig:重新引入本地属性和验证
[KAFKA-17082] - 将 kafka.utils.LogCaptureAppender 替换为 org.apache.kafka.common.utils.LogCaptureAppender
[KAFKA-17090] - 向 CreateTopicsResult#config 添加文档以提醒用户“type”和“document”均为空
[KAFKA-17095] - 修复拼写错误:CreateableTopicConfig -> CreatableTopicConfig
[KAFKA-17118] - 删除 StorageTool#buildMetadataProperties
[KAFKA-17122] - 将 `clusterId` 的类型从 `UUID` 更改为 `String`
[KAFKA-17124] - 修复不稳定的 DumpLogSegmentsTest#testDumpRemoteLogMetadataNonZeroStartingOffset
[KAFKA-17141] - “不支持 DescribeTopicPartitions API”警告消息使用户感到困惑
[KAFKA-17153] - KafkaMetricsGroup#newGauge 应接受功能接口而不是 `com.yammer.metrics.core.Gague`
[KAFKA-17160] - 如果 mockito 版本为 4.x,则始终导入 `mockito-inline`
[KAFKA-17177] - reviewers.py 应 grep “authors” 以提供更多候选审阅者信息
[KAFKA-17179] - 使用 `ClusterTestExtensions` 时不要添加 `integration` 标签
[KAFKA-17279] - 处理 ConsumerCoordinator 中偏移提取的可重试错误
[KAFKA-17315] - 修复在 KRaft 模式下创建后立即过期的委托令牌的行为
[KAFKA-17412] - 记录 KRaft 中 `unclean.leader.election.enable` 的不同行为
Bug
[KAFKA-3346] - 将“Mode”重命名为“SslMode”
[KAFKA-4374] - 改进响应错误日志记录
[KAFKA-10190] - 无法在 entity-default 下设置复制限制配置
[KAFKA-14401] - 如果下面的 WorkThread 死亡,则连接器/任务读取偏移量可能会卡住
[KAFKA-15156] - 在 DefaultChannelMetadataRegistry 中正确更新 cipherInformation
[KAFKA-15838] - [Connect] ExtractField 和 InsertField NULL 值被默认值替换,即使在 NULLABLE 字段中也是如此
[KAFKA-16076] - RestClient 在发生 InterruptedException 时中断线程
[KAFKA-16105] - 由于 RemoteStorageException,分层主题的重新分配失败
[KAFKA-16254] - 允许 MM2 完全禁用偏移同步功能
[KAFKA-16345] - 可选择允许在授权标头中对客户端 ID 和客户端机密进行 urlencoding
[KAFKA-16468] - SendRPCsToBrokersEvent 中未找到侦听器错误
[KAFKA-16557] - 修复 OffsetFetchRequestState.toString()
[KAFKA-16558] - 实现 HeartbeatRequestState.toStringBase()
[KAFKA-16574] - 重新配置后 LogCleaner 的指标消失
[KAFKA-16584] - 使日志处理摘要可配置或调试
[KAFKA-16667] - KRaftMigrationDriver 在连续故障转移后卡住
[KAFKA-16684] - FetchResponse#responseData 可能返回不正确的数据
[KAFKA-16765] - NioEchoServer 因竞争而泄漏已接受的 SocketChannel 实例条件
[KAFKA-16807] - DescribeLogDirsResponseData#results#topics 包含意外的空分区主题
[KAFKA-16819] - CoordinatorRequestManager 似乎在协调器发现期间返回 0ms
[KAFKA-16858] - Flatten SMT 抛出 NPE
[KAFKA-16895] - RemoteCopyLagSegments 指标考虑了活动段
[KAFKA-16916] - ClientAuthenticationFailureTest.testAdminClientWithInvalidCredentials 将永远运行
[KAFKA-16924] - 运行 kafka 时没有日志输出
[KAFKA-16938] - 由于 DynamicBrokerConfig 和 DynamicConfig 之间的循环引用,非动态 props 被损坏
[KAFKA-16949] - connect_distributed_test 中的系统测试 test_dynamic_logging 是失败
[KAFKA-16955] - KafkaStream threadState 访问抛出 ConcurrentModification 异常
[KAFKA-16965] - 将“根本原因”异常作为嵌套异常添加到 Producer 的 TimeoutException
[KAFKA-16967] - NioEchoServer 无法注册连接并导致不稳定故障
[KAFKA-16970] - 修复 `ScramCredentialValue`、`ScramCredentialData` 和 `ContextualRecord` 的哈希实现
[KAFKA-16971] - 修复 QuorumConfigs#parseBootstrapServer 中格式字符串不正确的问题
[KAFKA-16984] - 新消费者在收到响应之前不应完成离开操作
[KAFKA-17007] - 修复 SourceAndTarget#equal
[KAFKA-17011] - SupportedFeatures.MinVersion 错误地阻止v0
[KAFKA-17013] - RequestManager#ConnectionState#toString() 应使用 %s
[KAFKA-17016] - 调整 GaugeWrapper 和 MeterWrapper 的行为
[KAFKA-17017] - AsyncConsumer#unsubscribe 不会清理分配的分区
[KAFKA-17052] - 将 ShadowJavaPlugin 降级到 8.1.3 以避免发布分类器错误
[KAFKA-17062] - RemoteLogManager - RemoteStorageException 导致数据丢失
[KAFKA-17077] - 当“broker.id.generation.enable=true”时,node.id 与 broker.id 不一致
[KAFKA-17102] - FetchRequest#forgottenTopics 将返回不正确的数据
[KAFKA-17104] - InvalidMessageCrcRecordsPerSec 在验证时未更新LegacyRecord
[KAFKA-17105] - 新建连接器后,不必要的连接器会重新启动
[KAFKA-17121] - 已发布工件中的 junit-platform.properties 文件会污染消费者的测试类路径
[KAFKA-17148] - Kafka 存储工具会打印 MetaPropertiesEnsemble
[KAFKA-17168] - RemoteLogReader/RemoteStorageThreadPool 的 logPrefix 未正确传播
[KAFKA-17190] - AssignmentsManager 卡在已删除主题上重试
[KAFKA-17192] - MirrorMaker2 工作器配置未将 config.providers 值传递给连接器
[KAFKA-17195] - transaction-coordinator:test 因 junit 错误而失败
[KAFKA-17214] - 将 3.8.0 Streams 和 Core 添加到系统测试
[KAFKA-17223] - 遇到 UnsupportedVersionException 后重试调用将导致 ConcurrentModificationException
[KAFKA-17227] - Apache Kafka 3.8.0 /tmp 执行权限
[KAFKA-17232] - 如果初始消费者组加载超时,MirrorCheckpointConnector 不会生成任务配置
[KAFKA-17235] - 系统测试 test_performance_service.py 失败
[KAFKA-17242] - MirrorCheckpointTask 打印启动检查点和偏移同步存储的虚假超时
[KAFKA-17310] - 锁定离线目录可能会破坏代理
[KAFKA-17335] - OAuth 的 URL 编码配置缺乏默认值会导致 NPE
[KAFKA-17360] - 未处理本地日志保留 ms/bytes“-2”正确
[KAFKA-17434] - upgrade_test.py 测试不可能的升级场景
[KAFKA-17492] - 当 BrokerRegistrationRequest < 4 时,跳过 minVersion 为 0 的功能,而不是将 0 替换为 1
[KAFKA-17506] - KRaftMigrationDriver 初始化竞争条件
[KAFKA-17527] - Kafka Streams 因未命中而失败,并出现 NPE
[KAFKA-17543] - 迁移到 KRaft 时强制指定Broker ID
[KAFKA-17584] - 修复动态日志配置中不正确的同义词处理问题
[KAFKA-17604] - 描述法定人数输出缺少添加的投票者端点
[KAFKA-17608] - 当Leader从法定人数中移除时,KRaft 控制器崩溃
[KAFKA-17636] - 格式化磁盘时,StorageTool 不会创建 SCRAM 证书
[KAFKA-17714] - 修正 StorageToolTest.scala 在 Scala 2.12 下的编译问题
[KAFKA-17731] - Kafka 消费者客户端在终止遥测推送时有时会超过等待时间
[KAFKA-17735] - release.py 不得使用 home.apache.org
[KAFKA-17749] - Throttle度量已更名
[KAFKA-17751] - Contoller 在使用 --initial-controllers 格式化时 CPU 高
[KAFKA-17753] - 更新 protobuf 和 commons-io 的依赖关系
[KAFKA-17788] - 在 ZK 迁移过程中,始终在 advertisedBrokerListeners 中包含 control.plane.listener.name
[KAFKA-17790] - 记录 control.plane.listener 应在 ZK 迁移完成前删除
[KAFKA-17794] - kafka-storage 格式必须需要 KIP-853 标志,除非设置了 controller.quorum.voters
[KAFKA-17868] - 不要忽略 kafka-storage.sh 中的--feature 标志
任务
[KAFKA-12670] - KRaft 支持 unclean.leader.election.enable
[KAFKA-12708] - 通过 JMH 重写 org.apache.kafka.test.Microbenchmarks
[KAFKA-14426] - 为具有开放 KIP 的 Kraft 限制添加文档
[KAFKA-14569] - 将 Connect 集成测试使用的 EmbeddedKafkaCluster 从 EmbeddedZookeeper 迁移到 KRaft
[KAFKA-15469] - 文档内置配置提供者
[KAFKA-15713] - 在 AclCommandTest 中支持 KRaft
[KAFKA-15746] - ControllerMutationQuotaTest 中的 KRaft 支持
[KAFKA-15751] - BaseAdminIntegrationTest 中的 KRaft 支持
[KAFKA-15752] - SaslSslAdminIntegrationTest 中的 KRaft 支持
[KAFKA-16068] - 在 ConnectorValidationIntegrationTest 中使用 TestPlugins 来消除插件扫描错误
[KAFKA-16192] - 向协调者介绍灵活记录的用法
[KAFKA-16390] - 使用 AsyncKafkaConsumer 的 consume_bench_test.py 测试失败
[KAFKA-16643] - 添加 ModifierOrder 检查样式规则
[KAFKA-16809] - 在 CI 中运行 javadoc 构建
[KAFKA-16859] - 清理是否启用分层存储的检查
[KAFKA-16862] - 重构 ConsumerTaskTest 以实现确定性并避免紧密循环
[KAFKA-16865] - 在 KIP-966 之后更改 Admin.describeTopics 行为
[KAFKA-16880] - 更新两个新 *threadPool 属性的等号和哈希码
[KAFKA-16976] - 改进代理重新启动时 RemoteLogManagerConfig 的动态配置处理。
[KAFKA-16998] - 修复 Github 操作中的警告问题
[KAFKA-17097] - 在 ValueToKey 和 ReplaceField 中添加 replace.null.with.default 配置 (KIP-1040)
[KAFKA-17328] - 更新 Release.py 脚本以指向 dist.apache.org/dev
[KAFKA-17457] - 将 ZK 迁移的最低 MetadataVersion 提高到 3.6
[KAFKA-17489] - 从状态更新器中删除失败任务时出现 IllegalStateException
测试
[KAFKA-15793] - 不稳定的测试 ZkMigrationIntegrationTest.testMigrateTopicDeletions
[KAFKA-15999] - 将 HeartbeatRequestManagerTest 从 ConsumerTestBuilder 中迁移出去
[KAFKA-16000] - 将 MembershipManagerImplTest 从 ConsumerTestBuilder 中迁移出去
[KAFKA-16001] - 将 ConsumerNetworkThreadTest 从 ConsumerTestBuilder 中迁移出去
[KAFKA-16219] - Tsl13SelectorTest::testExpireClosedConnectionWithPendingReceives 无限期挂起
[KAFKA-16383] - 修复不稳定的测试 IdentityReplicationIntegrationTest.testReplicateFromLatest()
[KAFKA-16547] - 为 DescribeConfigsOptions#includeDocumentation 添加测试
[KAFKA-16550] - 为LogDirsCommand
[KAFKA-16551] - 为 ClusterTool 添加集成测试
[KAFKA-16661] - 为集成测试框架添加较低的 `log.initial.task.delay.ms` 值
[KAFKA-16672] - 修复不稳定的 DedicatedMirrorIntegrationTest.testMultiNodeCluster
[KAFKA-16785] - 将 TopicBasedRemoteLogMetadataManagerRestartTest 迁移到新的测试基础设施
[KAFKA-16882] - 将 RemoteLogSegmentLifecycleTest 迁移到新的测试基础设施
[KAFKA-16901] - 为 ConsumerRecords#records(String) 添加单元测试
[KAFKA-16912] - 将 ConsumerNetworkThreadTest.testPollResultTimer() 迁移到 NetworkClientDelegateTest
[KAFKA-16920] - 不稳定的测试 testControlledShutdown() - kafka.server.BrokerLifecycleManagerTest
[KAFKA-16922] - 为 NewTopic 添加单元测试
[KAFKA-16939] - 重新访问 ConfigCommandIntegrationTest
[KAFKA-16958] - 为 `EndToEndLatencyTest`、`OffsetCommitCallbackInvokerTest`、`ProducerPerformanceTest` 和 `TopologyTest` 添加 `STRICT_STUBS`
[KAFKA-16990] - 系统测试中传递给 kafka-storage.sh 的标志无法识别
[KAFKA-16991] - 不稳定测试 org.apache.kafka.streams.integration.PurgeRepartitionTopicIntegrationTest.shouldRestoreState
[KAFKA-17000] - 偶尔出现 AuthorizerTest 线程泄漏
[KAFKA-17009] - 为通过 describeReplicaLogDirs 查询不存在的副本
[KAFKA-17096] - 修复 kafka_log4j_appender.py
[KAFKA-17133] - 添加单元测试以确保 `ConsumerRecords#recoreds` 返回不可变对象
[KAFKA-17135] - 为 `ProducerStateManager#readSnapshot` 和 `ProducerStateManager#writeSnapshot` 添加单元测试
[KAFKA-17149] - 将 ProducerStateManagerTest 移至存储模块
[KAFKA-17172] - 将 `@Tag("integration")` 添加到 `ClusterTest`、`ClusterTemplate` 和 `ClusterTests`
[KAFKA-17194] - 不要为 MetadataQuorumCommandTest#testCommandConfig 创建集群
[KAFKA-17202] - EosIntegrationTest.verifyChangelogMaxRecordOffsetMatchesCheckpointedOffset 泄漏消费者
[KAFKA-17204] - KafkaStreamsCloseOptionsIntegrationTest.before 泄漏 AdminClient
[KAFKA-17309] - 修复不稳定的 testCallFailWithUnsupportedVersionExceptionDoesNotHaveConcurrentModificationException
[KAFKA-17422] - 缩短 testDeletionSkippedForSegmentsBeingCopied 的测试时间
[KAFKA-17454] - 修复使用 3.2 运行时失败的 transaction_mixed_versions_test.py
[KAFKA-17458] - 将 3.8 添加到 transaction_upgrade_test.py、transactions_mixed_versions_test.py 和 kraft_upgrade_test.py
[KAFKA-17459] - 稳定reassign_partitions_test.py
[KAFKA-17497] - 使用旧控制器为 zk 迁移添加 e2e
子任务
[KAFKA-12572] - 添加导入排序 checkstyle 规则并配置自动格式化程序
[KAFKA-14132] - 剩余的 PowerMock 到 Mockito 测试
[KAFKA-14133] - 剩余的 EasyMock 到 Mockito 测试
[KAFKA-15623] - 将流模块中的剩余测试迁移到 JUnit 5
[KAFKA-16154] - 进行代理更改以返回 LATEST_TIERED_TIMESTAMP 的偏移量
[KAFKA-16223] - 将 KafkaConfigBackingStoreTest 的 EasyMock 和 PowerMock 替换为 Mockito
[KAFKA-16480] - ListOffsets 更改应具有相关的 API/IBP 版本更新
[KAFKA-16518] - KIP-853 的存储工具更改
[KAFKA-16520] - DescribeQuorum 的更改响应
[KAFKA-16521] - kafka-metadata-quorum 描述 KIP-853 的更改
[KAFKA-16522] - 管理员客户端更改以添加和删除选民
[KAFKA-16523] - kafka-metadata-quorum 添加选民和删除选民更改
[KAFKA-16527] - 更新现有的 KRaft RPC 和请求处理
[KAFKA-16529] - KRaft RPC 的响应处理和请求发送
[KAFKA-16531] - 修复 check-quorum 计算以不假设领导者在选民集中
[KAFKA-16532] - 支持第一个领导者引导选民集
[KAFKA-16533] - UpdateVoter RPC 和请求处理
[KAFKA-16534] - 发送 UpdateVoter 请求和响应处理
[KAFKA-16535] - AddVoter RPC 和请求处理
[KAFKA-16536] - 使用 BeginQuorumEpoch 作为领导者的心跳
[KAFKA-16537] - RemoveVoter RPC 和请求处理
[KAFKA-16581] - 实现 KafkaRaftClient unittest 以进行成员资格变更
[KAFKA-16673] - 使用 ConsumerProtocolSubscription 优化 toTopicPartitions
[KAFKA-16713] - 添加新的 RPC 定义
[KAFKA-16721] - 为新的错误代码添加例外
[KAFKA-16724] - 为 kafka-producer-perf-test.sh 添加新选项
[KAFKA-16747] - 实现共享会话和上下文
[KAFKA-16751] - 实现发布获取的记录SharePartitionManager
[KAFKA-16754] - 在 SharePartition 中实现发布获取的记录功能
[KAFKA-16755] - 在 SharePartition 中实现锁定超时功能
[KAFKA-16772] - 引入 kraft.version 类型
[KAFKA-16803] - 升级到不使用 ConfigureUtil 的 ShadowJavaPlugin 版本
[KAFKA-16806] - 为所有测试模块明确声明 JUnit 依赖项
[KAFKA-16822] - 在协调器中抽象消费者组以与共享组共享功能
[KAFKA-16842] - 修复 KafkaConfig 验证并支持未知投票者
[KAFKA-16850] - KRaft - 添加 TopicRecord v2
[KAFKA-16851] - 添加 remote.log.disable.policy
[KAFKA-16855] - KRaft - Wire 重放TopicRecord
[KAFKA-16878] - 从代码库中删除 powermock 和 easymock
[KAFKA-16887] - 记录远程复制/获取配额指标
[KAFKA-16914] - 添加共享组动态和代理配置
[KAFKA-16915] - 更新领导者变更消息
[KAFKA-16921] - 将 connect 模块的所有 junit 4 代码迁移到 junit 5
[KAFKA-16927] - 处理扩展领导者端点
[KAFKA-16944] - 范围分配器不与粘性共同分区
[KAFKA-16953] - 正确实现 DescribeQuorumResponse 的发送
[KAFKA-16957] - 启用 KafkaConsumerTest#configurableObjectsShouldSeeGeneratedClientId 以与 CLASSIC 和 CONSUMER 配合使用
[KAFKA-16963] - 添加和删除投票者的系统测试
[KAFKA-16972] - 将 `BrokerTopicStats` 和 `BrokerTopicMetrics` 移动到 `org.apache.kafka.storage.log.metrics`(存储模块)
[KAFKA-16973] - 修复被捕获的情况
[KAFKA-17003] - 实现 SharePartitionManager 关闭功能
[KAFKA-17004] - 次要:删除 SharePartitionManager 中的额外同步块
[KAFKA-17012] - 为 AsyncConsumer 启用 testMeasureCommitSyncDuration、testMeasureCommittedDurationOnFailure、testInvalidGroupMetadata、testMeasureCommittedDuration、testOffsetsForTimesTimeout、testBeginningOffsetsTimeout 和 testEndOffsetsTimeout
[KAFKA-17018] - 元数据版本 3.9 应返回 Fetch 版本 17
[KAFKA-17026] - 在 LSO 移动中实现 updateCacheAndOffsets 功能
[KAFKA-17028] - FindCoordinator v6 初始实现
[KAFKA-17031] - 将 RLM 配置公开并修复默认值处理
[KAFKA-17047] - 使用 Share 将消费者组和共享类重构为现代包
[KAFKA-17048] - 记录如何使用 KIP-853
[KAFKA-17055] - 在 KafkaRaftClientTest 和 KafkaRaftClientSnapshotTest 中使用随机副本 ID
[KAFKA-17058] - 扩展 CoordinatorRuntime 以支持非原子写入
[KAFKA-17067] - 修复到 CandidateState 的转换
[KAFKA-17069] - 远程复制节流指标
[KAFKA-17071] - SharePartition - 添加更多单元测试
[KAFKA-17092] - 重新访问 AsyncConsumer 的 `KafkaConsumerTest#testBeginningOffsetsTimeout`
[KAFKA-17106] - 启用KafkaConsumerTest#testFetchProgressWithMissingPartitionPosition for AsyncConsumer
[KAFKA-17110] - 在 KafkaConsumerTest 中为 AsyncKafkaConsumer 启用有效测试用例
[KAFKA-17129] - 重新访问 KafkaConsumerTest 中的 FindCoordinatorResponse
[KAFKA-17132] - 重新访问 AsyncConsumer 的 testMissingOffsetNoResetPolicy
[KAFKA-17144] - 撤回错误中添加的 ListGroups RPC v6
[KAFKA-17152] - 确保在关闭嵌入式 zk 时 zk 会话跟踪器关闭
[KAFKA-17159] - 确保在关闭 KafkaClusterTestKit 时 kafka-cluster-test-kit-executor 关闭
[KAFKA-17163] - 重新访问 testSubscriptionOnInvalidTopic 和AsyncKafkaConsumer 的 testPollAuthenticationFailure
[KAFKA-17169] - 添加一个 EndpointsTest 套件来测试所有公共方法
[KAFKA-17176] - 将 FileLock 移至 server-common 模块
[KAFKA-17205] - 在 KRaft 模式下允许在控制器级别进行主题配置验证
[KAFKA-17210] - 代理修复,以便在共享分区上顺利并发获取
[KAFKA-17236] - 当远程复制被禁用且没有远程日志时,应删除本地日志
[KAFKA-17238] - 将 VoterSet 和 ReplicaKey 从 raft.internals 移至 raft
[KAFKA-17245] - 恢复 topicRecord 更改
[KAFKA-17276] - 将“ignorable=true”添加到 `replicaDirectoryId`(FetchSnapshotRequest 和 FetchRequest),使其与旧版本兼容版本
[KAFKA-17300] - 禁用功能文档
[KAFKA-17304] - 当 kraft 写入控制记录时,QuorumController 崩溃
[KAFKA-17305] - Quorum 控制器应在代理注册期间检查最终的 kraft.version
[KAFKA-17319] - 更新 ListOffsetsRequest 的 latestVersionUnstable
[KAFKA-17326] - LIST_OFFSET 请求已从“Api Keys”页面中删除
[KAFKA-17331] - 如果服务器/客户端不支持 EarliestLocalSpec 和 LatestTieredSpec,则抛出/返回不支持的版本异常
[KAFKA-17332] - 动态删除活动控制器时崩溃
[KAFKA-17333] - KRaft 过早通知控制器领导权
[KAFKA-17336] - 添加 IT 以确保生产 MV 不会使用不稳定版本的 LIST_OFFSET
[KAFKA-17426] - 如果未设置目录 ID,KRaft 将会失败
[KAFKA-17822] - 将 Jetty 更新至 9.4.56 以适应 3.9