2021年9月21日,Kafka 3.0.0发布。
以下是Kafka 3.0.0版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程。
有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。
Kafka 3.0.0包括许多重要的新功能,以下是一些值得注意的变化的总结。
- 废弃 Java 8 和 Scala 2.12 的支持
- Kafka Raft支持元数据topic的快照以及自我管理的法定人数的其他改进
- 默认启用的Kafka生产者的更强的交付保证
- 废弃了消息格式v0和v1
- 优化了OffsetFetch和FindCoordinator请求
- 更灵活的Mirror Maker 2配置和Mirror Maker 1的弃用
- 能够在Kafka Connect的一次调用中重新启动连接器的任务
- 连接器日志上下文和连接器客户端覆盖现在默认启用
- 增强了Kafka流中时间戳同步的语义
- 修改了流的TaskId的公共API
- Kafka中默认的serde变为空
新功能
[KAFKA-8863] - 增加InsertHeader和DropHeaders连接转换 KIP-145
[KAFKA-12471] - 在KIP-500模式下实现createPartitions。
[KAFKA-13207] - 如果分区从取样器中移除,副本fetcher不应该在分歧时更新分区状态
改进
[KAFKA-3745] - 考虑向 ValueJoiner 接口添加连接键
[KAFKA-4793] - Kafka Connect: POST /connectors/(string: name)/restart 没有启动失败的任务。
[KAFKA-5235] - GetOffsetShell:支持多个主题和消费者配置重写
[KAFKA-6987] - 用CompletableFuture重新实现KafkaFuture
[KAFKA-7458] - 避免在引导阶段进行强制处理
[KAFKA-8326] - 加入Serde>支持
[KAFKA-8372] - 移除已废弃的 RocksDB#compactRange API
[KAFKA-8478] - 在强行处理之前,poll更多的消息
[KAFKA-8531] - 更改默认副本配置
[KAFKA-8613] - 为stream中的窗口操作设定强制的宽限期
[KAFKA-8897] - 增加RocksDB的版本
[KAFKA-9559] - 将默认的"default serde"从 ByteArraySerde改为null
[KAFKA-9726] - MM2 模仿 MM1 的 IdentityReplicationPolicy
[KAFKA-10062] - 增加一个方法来检索Streams应用程序所知道的当前时间戳。
[KAFKA-10201] - 更新代码库以使用更具包容性的术语
[KAFKA-10449] - Connect-distributed样例配置文件中没有关于listeners的说明
[KAFKA-10585] - Kafka Streams应该从清理状态存储目录中进行清理
[KAFKA-10619] - Producer将默认启用EOS
[KAFKA-10675] - ConnectSchema.validateValue()的错误信息应包括模式的名称。
[KAFKA-10697] - 删除ProduceResponse.response
[KAFKA-10746] - 消费者投票超时过期应记录为WARNING而不是INFO。
[KAFKA-10767] - 为ThreadCacheTest中缺少的方法添加单元测试案例
[KAFKA-10769] - 删除JoinGroupRequest#containsValidPattern,因为它与Topic#containsValidPattern是重复的。
[KAFKA-10885] - 重构MemoryRecordsBuilderTest/MemoryRecordsTest以避免大量(不必要的)被忽略的测试案例
[KAFKA-12177] - Retention不是幂等的
[KAFKA-12234] - 扩展OffsetFetch请求以接受多个组ID。
[KAFKA-12287] - 当通过时间戳或持续时间重置偏移量时,在消费者组上添加WARN日志,并默认为最新。
[KAFKA-12288] - 删除任务级文件系统锁
[KAFKA-12294] - 考虑使用转发机制来创建元数据自动主题
[KAFKA-12313] - 考虑废除default.windowed.serde.inner.class配置。
[KAFKA-12329] - 当一个主题不存在时,kafka-reassign-partitions命令更好给出一个错误提示
[KAFKA-12335] - 将junit从5.7.0升级到5.7.1
[KAFKA-12344] - 在Scala API中支持SlidingWindows。
[KAFKA-12347] - 提高Kafka流跟踪进度的能力
[KAFKA-12349] - 跟进KIP-500中的PartitionEpoch问题
[KAFKA-12362] - 确定一个任务是否处于空闲状态
[KAFKA-12379] - KIP-716:允许用MirrorMaker2配置offsetsync主题的位置
[KAFKA-12396] - 当收到空密钥时,为kstreams提供专门的异常。
[KAFKA-12398] - 修复不稳定的测试`ConsumerBounceTest.testClose`。
[KAFKA-12408] - 文档中省略了ReplicaManager的指标
[KAFKA-12409] - ReplicaManager中泄漏的指标
[KAFKA-12415] - 为Gradle 7.0做准备,限制非api依赖的过渡范围。
[KAFKA-12419] - 移除3.0中Kafka Streams的废弃API
[KAFKA-12436] - 废弃MirrorMaker v1
[KAFKA-12439] - 当处于KIP-500模式时,我们应该能够为被围栏的节点分配新的分区
[KAFKA-12442] - 将ZSTD JNI从1.4.8-4升级到1.4.9-1
[KAFKA-12454] - 当给定的brokerIds在当前kafka集群中不存在时,在kafka-log-dirs上增加ERROR日志记录。
[KAFKA-12464] - 增强约束性粘性分配算法
[KAFKA-12479] - 在ConsumerGroupCommand中把分区偏移请求合并为一个请求
[KAFKA-12483] - 在连接器配置中默认启用客户端重写功能
[KAFKA-12484] - 默认启用Connect的连接器日志上下文
[KAFKA-12499] - 根据Streams EOS的提交间隔调整事务超时。
[KAFKA-12509] - 收紧StateDirectory线程锁定
[KAFKA-12541] - 扩展ListOffset以获取最大时间戳的偏移量(KIP-734)。
[KAFKA-12573] - 移除废弃的`Metric#value`。
[KAFKA-12574] - 弃用eos-alpha
[KAFKA-12577] - 移除废弃的`ConfigEntry`构造函数
[KAFKA-12584] - 移除废弃的`Sum`和`Total`类
[KAFKA-12591] - 移除废弃的`quota.producer.default`和`quota.consumer.default`配置
[KAFKA-12612] - 在3.0中从ConsumerRecord/RecordMetadata中删除校验和。
[KAFKA-12614] - 对主干和发布分支的构建使用Jenkinsfile
[KAFKA-12620] - 由控制器生成的生产者ID
[KAFKA-12637] - 删除废弃的PartitionAssignor接口
[KAFKA-12662] - 为ProducerPerformance添加单元测试
[KAFKA-12663] - 更新FindCoordinator,以便一次解决多个Coordinators。
[KAFKA-12675] - 改进粘性一般分配器的可扩展性和性能
[KAFKA-12779] - TaskMetadata应该返回实际的TaskId而不是普通的字符串
[KAFKA-12788] - 改进KRaft副本的放置。
[KAFKA-12803] - 在KRaft模式下,支持重新分配分区
[KAFKA-12819] - 改进测试的生活质量
[KAFKA-12849] - 考虑将TaskMetadata迁移到与内部实现的接口上
[KAFKA-12874] - 将默认的消费者会话超时增加到45秒(KIP-735)。
[KAFKA-12906] - 消费者应在反序列化异常中包括分区和偏移量编号
[KAFKA-12909] - 允许用户选择加入假的左/外流-流加入的改进。
[KAFKA-12921] - 将ZSTD JNI从1.4.9-1升级到1.5.0-1
[KAFKA-12922] - MirrorCheckpointTask应关闭topic过滤器
[KAFKA-12931] - KIP-746:修改KRaft元数据记录
[KAFKA-12934] - 将一些控制器类移至元数据包中
[KAFKA-12981] - 确保LogSegment.maxTimestampSoFar和LogSegment.offsetOfMaxTimestampSoFar被同步读取/更新
[KAFKA-13000] - 改进MockClient中UnsupportedVersionException的处理。
[KAFKA-13021] - 改进API变更的Javadocs并解决KIP-633的后续问题。
[KAFKA-13026] - Idempotent producer(KAFKA-10619)的后续测试。
[KAFKA-13041] - 支持用ducker-ak对系统测试进行调试
[KAFKA-13209] - 升级jetty-server以修复CVE-2021-34429
[KAFKA-13258] - AlterClientQuotas响应失败时不包含错误。
[KAFKA-13259] - 当DescribeProducers响应失败时不包含错误。
[KAFKA-13260] - 查找协调者错误计数不处理v4的问题
漏洞
[KAFKA-3968] - 当新的FileMessageSet被刷新到磁盘时,不会在父目录上调用fsync()。
[KAFKA-5146] - Kafka Streams:删除connect-json的编译依赖性
[KAFKA-6435] - 应用程序重置工具可能会删除不正确的内部主题
[KAFKA-7421] - Kafka Connect在加载类时出现死锁
[KAFKA-8315] - 历史join问题
[KAFKA-8562] - 尽管KAFKA-5051,SASL_SSL仍然执行反向DNS查询
[KAFKA-8784] - 删除RocksDBConfigSetter#close的默认实现
[KAFKA-8940] - 不稳定测试SmokeTestDriverIntegrationTest.shouldWorkWithRebalance
[KAFKA-9186] - Kafka Connect充斥着来自DelegatingClassLoader的可能是虚假的错误信息的日志。
[KAFKA-9189] - 如果与Zookeeper的连接丢失,则关闭被阻止。
[KAFKA-9295] - KTableKTableForeignKeyInnerJoinMultiIntegrationTest#shouldInnerJoinMultiPartitionQueryable
[KAFKA-9527] - 当在具有空分区的--input-topics上运行--to-dateetime或--by-duration时,应用程序重置工具返回NPE。
[KAFKA-9672] - ISR中的死亡broker导致isr-expiration失败并出现异常
[KAFKA-9858] - CVE-2016-3189在bzip2 1.0.6中的bzip2recover中存在的Use-after-free漏洞,允许远程攻击者通过制作的bzip2文件导致拒绝服务(崩溃),这与块结束设置在块的开始之前有关。
[KAFKA-10046] - 忽略废弃的PartitionGrouper配置
[KAFKA-10192] - 混乱的测试BlockingConnectorTest#testBlockInConnectorStop
[KAFKA-10340] - 当试图向不存在的topic发送消息时,源连接器应报告错误,而不是永远挂起。
[KAFKA-10614] - 群组协调器onElection/onResignation应该防止领导时代。
[KAFKA-12170] - Connect Cast不能正确处理 "字节 "类型的字段。
[KAFKA-12252] - 当工作者失去领导权时,分布式herder tick线程快速循环。
[KAFKA-12262] - 当拥有密钥的跟随者成为leader时,新的会话密钥不会被分发。
[KAFKA-12297] - MockProducer的实现与异步发送的Callback文档相矛盾
[KAFKA-12303] - 当出现空值时,Flatten SMT会丢弃一些字段。
[KAFKA-12308] - ConfigDef.parseType死锁
[KAFKA-12330] - 当FetchResponse满时,FetchSessionCache可能导致分区的饥饿。
[KAFKA-12336] - 当调用带有命名的Consumed参数的stream[K, V](topicPattern: Pattern)API时,自定义流命名不起作用。
[KAFKA-12350] - 关于refresh.themes.interval.seconds默认值的文档不正确
[KAFKA-12393] - 文档多租户注意事项
[KAFKA-12426] - 缺少在RaftReplicaManager中创建partition.metadata文件的逻辑
[KAFKA-12427] - Broker不关闭有缓冲数据的静默空闲连接
[KAFKA-12474] - 如果无法写入新的会话密钥,Worker会死亡。
[KAFKA-12492] - RocksDBConfigSetter例子的格式被搞乱了
[KAFKA-12514] - SubscriptionState的NPE
[KAFKA-12520] - 生产者状态在启动时被不必要地重新建立。
[KAFKA-12522] - Cast SMT应该允许空值消息通过。
[KAFKA-12548] - 无效记录的错误信息没有被发送给应用程序
[KAFKA-12557] - org.apache.kafka.client.admin.KafkaAdminClientTest#testClientSideTimeoutAfterFailureToReceiveResponse间歇性地无限期挂起。
[KAFKA-12611] - 修复在ProducerPerformance中不正确地使用随机有效载荷的问题
[KAFKA-12619] - 确保LeaderChange消息在初始化高水位之前被提交。
[KAFKA-12650] - 在InternalTopicManager#cleanUpCreatedTopics中的NPE。
[KAFKA-12655] - CVE-2021-28165 - 升级jetty到9.4.39
[KAFKA-12660] - 追加失败后不更新offset提交传感器
[KAFKA-12661] - 当值为非空时,ConfigEntry#equal不比较其他字段
[KAFKA-12667] - 关闭StateDirectory时错误日志不正确
[KAFKA-12672] - 运行test-kraft-server-start会出错
[KAFKA-12677] - raftCluster总是被发送到错误的活动控制器,并且从不更新。
[KAFKA-12684] - 有效的分区列表被成功选出的分区列表错误地替换。
[KAFKA-12686] - AlterIsr响应处理中的竞赛条件
[KAFKA-12691] - TaskMetadata timeSinceIdlingStarted 未正确报告
[KAFKA-12700] - 在文档中,admin.listeners配置的有效值很古怪。
[KAFKA-12702] - 在InterBrokerSendThread中捕获未处理的异常。
[KAFKA-12718] - 会话窗口被过早关闭
[KAFKA-12730] - 从Java 9开始,一次Kerberos登录失败会导致所有未来连接失败
[KAFKA-12747] - 不稳定的测试RocksDBStoreTest.shouldReturnUUIDsWithStringPrefix
[KAFKA-12749] - 被抑制的KTable上的更新日志主题配置丢失
[KAFKA-12752] - CVE-2021-28168升级jersey到2.34或3.02
[KAFKA-12754] - 当读取偏移量时,TaskMetadata endOffsets不更新。
[KAFKA-12777] - AutoTopicCreationManager不处理响应错误
[KAFKA-12782] - Javadocs搜索发送到一个不存在的URL。
[KAFKA-12792] - 修复指标错误并引入TimelineInteger
[KAFKA-12815] - KTable.transformValue可能有不正确的记录元数据
[KAFKA-12835] - 主题ID在borker上可能不匹配(在borker之间协议版本更新后)。
[KAFKA-12851] - 不稳定的测试RaftEventSimulationTest.canMakeProgressIfMajorityIsReachable
[KAFKA-12856] - 升级Jackson到2.12.3
[KAFKA-12865] - Admin Client API在描述ACL时的文档错误
[KAFKA-12866] - 即使使用chroot,Kafka也需要ZK的root权限。
[KAFKA-12867] - Trogdor ConsumeBenchWorker在配置maxMessages时过早退出。
[KAFKA-12870] - RecordAccumulator卡在刷新状态中
[KAFKA-12880] - 在3.0中删除废弃的Count和SampledTotal
[KAFKA-12889] - 日志清理组考虑空的日志段以避免留下空的日志
[KAFKA-12890] - 消费者组卡在 "CompletingRebalance"中。
[KAFKA-12896] - 由重复的组JoinGroups引起的组再平衡循环
[KAFKA-12897] - KRaft控制器不能在一个broker集群上创建具有多个分区的主题
[KAFKA-12898] - 订阅中拥有的分区必须被排序
[KAFKA-12904] - Connect的验证REST端点使用不正确的超时。
[KAFKA-12914] - StreamSourceNode.toString()与StreamsBuilder.stream(Pattern)ctor一起抛出。
[KAFKA-12925] - 中间接口中缺少prefixScan
[KAFKA-12926] - ConsumerGroupCommand的java.lang.NullPointerException在运行kafka-consumer-groups.sh时出现负数。
[KAFKA-12945] - 在3.0中删除端口、host.name和相关配置
[KAFKA-12948] - NetworkClient.close(node)在节点处于连接状态时使NetworkClient无法使用
[KAFKA-12949] - TestRaftServer的scala.MatchError: null on test-kraft-server-start.sh
[KAFKA-12951] - 恢复GlobalKTable时的无限循环
[KAFKA-12964] - 损坏的分段恢复会删除新的生产者状态快照
[KAFKA-12983] - 在加入组之前,onJoinPrepare不总是被调用。
[KAFKA-12984] - 合作的粘性分配器会被无效的SubscriptionState输入元数据卡住
[KAFKA-12991] - 修复对`AbstractCoordinator.state`的不安全访问。
[KAFKA-12993] - Streams "内存管理 "文档的格式被搞乱了
[KAFKA-12996] - 当获取的偏移量小于领导者的起始偏移量时,不能正确处理分歧纪元的OffsetOutOfRange。
[KAFKA-13002] - 对于非MAX_TIMESTAMP规格,listOffsets必须立即降级。
[KAFKA-13003] - KafkaBroker公布socket端口而不是配置的公开端口
[KAFKA-13007] - KafkaAdminClient getListOffsetsCalls为每个主题分区建立集群快照。
[KAFKA-13008] - 在等待分区滞后时,Stream将停止处理数据很长一段时间。
[KAFKA-13010] - 不稳定测试org.apache.kafka.streams.integration.TaskMetadataIntegrationTest.shouldReportCorrectCommittedOffsetInformation()。
[KAFKA-13029] - FindCoordinators 批处理可能会在滚动升级期间破坏消费者
[KAFKA-13033] - 协调器不可用错误应该导致添加到取消映射列表中进行新的查找
[KAFKA-13037] - “线程状态已经是 PENDING_SHUTDOWN”日志垃圾邮件
[KAFKA-13053] - KRaft 记录的Bump框架版本
[KAFKA-13056] - 当控制器共存时,Broker不应生成快照
[KAFKA-13057] - 许多broker RPC 在 KRaft 模式下未启用
[KAFKA-13058] - `AlterConsumerGroupOffsetsHandler` 不能正确处理分区错误。
[KAFKA-13073] - 由于 MockLog 的实现不一致,模拟测试失败
[KAFKA-13078] - 过早关闭 FileRawSnapshotWriter
[KAFKA-13080] - 获取快照请求未定向到控制器中的 kraft
[KAFKA-13092] - LISR 请求中的性能回归
[KAFKA-13096] - 添加/删除/替换线程时,QueryableStoreProvider 不会更新,呈现 IQ 不可能
[KAFKA-13098] - 在元数据日志目录中恢复快照时没有此类文件异常
[KAFKA-13099] - transactionalIds 过期时消息太大错误
[KAFKA-13100] - 控制器无法恢复到内存快照
[KAFKA-13104] - 控制器在辞职时应通知RaftClient。
[KAFKA-13112] - 控制器的承诺偏移量与raft客户端监听器上下文不同步。
[KAFKA-13119] - 启动时验证KRaft controllerListener的配置。
[KAFKA-13127] - 修复偏离的分区查找逻辑
[KAFKA-13129] - 修复与ConfigCommand变化有关的破碎系统测试
[KAFKA-13132] - 在LISR请求中升级到主题ID,在3.0中引入了缺口
[KAFKA-13137] - KRaft Controller Metric MBean名称的引用不正确
[KAFKA-13139] - 在请求重启没有任务的连接器后出现空响应,导致NPE
[KAFKA-13141] - 如果存在分歧时,Leader不应更新follower的获取偏移量
[KAFKA-13143] - 禁用KRaft控制器的元数据端点
[KAFKA-13160] - 修复在使用KRaft时调用代理的配置处理程序以传递预期的默认资源名称的代码。
[KAFKA-13161] - 在KRaft的分区变化后,Follower leader和ISR状态没有更新
[KAFKA-13167] - 在关机期间,KRaft broker应立即进行心跳。
[KAFKA-13168] - KRaft观察者不应该有一个副本ID
[KAFKA-13173] - KRaft控制器不能正确处理同时过期的broker
[KAFKA-13198] - 处理PartitionChangeRecord时,TopicsDelta不更新已删除的主题
[KAFKA-13214] - 消费者在断开连接后不应该重置组的状态
[KAFKA-13215] - 片面的测试org.apache.kafka.streams.integration.TaskMetadataIntegrationTest.shouldReportCorrectEndOffsetInformation
[KAFKA-13219] - BrokerState指标对KRaft集群不起作用
[KAFKA-13262] - 模拟客户端现在有最终close()方法
[KAFKA-13266] - `InitialFetchState`应该在分区从获取器中移除后创建
[KAFKA-13270] - Kafka可能无法连接到ZooKeeper,永远重试,并且永远不会启动
[KAFKA-13276] - 公共的DescribeConsumerGroupsResult构造函数指向KafkaFutureImpl
[KAFKA-13277] - 请求/响应中长标签字符串的序列化会引发BufferOverflowException
任务
[KAFKA-8405] - 删除废弃的 `kafka-preferred-replica-election` 命令
[KAFKA-8734] - 删除 PartitionAssignorAdapter 和废弃的 PartitionAssignor 接口
[KAFKA-10070] - 参数化连接单元测试以删除代码重复
[KAFKA-10091] - 改善任务空闲
[KAFKA-12482] - 删除弃用的 rest.host.name 和 rest.port Connect worker 配置
[KAFKA-12519] - 考虑删除流旧的内置指标版本
[KAFKA-12578] - 删除弃用的安全类/方法
[KAFKA-12579] - 从 3.0 的客户端中删除各种弃用的方法
[KAFKA-12581] - 删除弃用的 Admin.electPreferredLeaders
[KAFKA-12588] - 在 shell 命令中删除弃用的 --zookeeper
[KAFKA-12590] - 删除弃用的 SimpleAclAuthorizer
[KAFKA-12592] - 删除弃用的 LogConfig.Compact
[KAFKA-12600] - 删除客户端配置 `client.dns.lookup` 的弃用配置值 `default`
[KAFKA-12625] - 修复通知文件
[KAFKA-12717] - 删除内部转换器配置属性
[KAFKA-12724] - 将 2.8.0 添加到系统测试和流升级测试
[KAFKA-12794] - DescribeProducersRequest.json 中的尾随 JSON 令牌可能会导致某些 JSON 解析器中的解析错误
[KAFKA-12800] - 配置 jackson 以拒绝生成器中的尾随输入
[KAFKA-12820] - 升级 maven-artifact 依赖以解决 CVE-2021-26291
[KAFKA-12976] - 从删除主题调用中删除 UNSUPPORTED_VERSION 错误
[KAFKA-12985] - CVE-2021-28169 - 将jetty升级到 9.4.42
[KAFKA-13035] - Kafka Connect:更新 POST /connectors/(string: name)/restart 文档以包含任务重启行为
[KAFKA-13051] - 需要为 3.0 定义 Principal Serde
[KAFKA-13151] - 在 KRaft 中禁止策略配置
测试
[KAFKA-9009] - 片状测试 kafka.integration.MetricsDuringTopicCreationDeletionTest.testMetricsDuringTopicCreateDelete
[KAFKA-12273] - InterBrokerSendThread#pollOnce 即使正确关闭也会抛出 FatalExitError
[KAFKA-12284] - 片状测试 MirrorConnectorsIntegrationSSLTest#testOneWayReplicationWithAutoOffsetSync
[KAFKA-12384] - 片状测试 ListOffsetsRequestTest.testResponseIncludesLeaderEpoch
[KAFKA-12561] - 修复片状 kafka.server.RaftClusterTest.testCreateClusterAndCreateListDeleteTopic()
[KAFKA-12629] - 失败测试:RaftClusterTest
[KAFKA-13045] - 为批处理 OffsetFetch 请求添加测试,其中我们在请求中具有相同的组出现不止一次
子任务
[KAFKA-7106] - 从Window定义中删除segment/segmentInterval。
[KAFKA-7606] - 从StreamsResetter中删除废弃的选项
[KAFKA-7785] - 移除PartitionGrouper接口和它的配置,并将DefaultPartitionGrouper移至内部包。
[KAFKA-9548] - SPI - RemoteStorageManager和RemoteLogMetadataManager接口及相关类。
[KAFKA-10292] - 修复不稳定的streams/streams_broker_bounce_test.py
[KAFKA-10434] - 删除WindowStore上已废弃的方法
[KAFKA-10537] - 将KStreamImpl过滤器转换成新的PAPI
[KAFKA-10538] - 将KStreamImpl map转换为新的PAPI
[KAFKA-10541] - 将KTable过滤器转换为新的PAPI
[KAFKA-10587] - 为KIP-629重新命名kafka-mirror-maker CLI命令行参数
[KAFKA-10588] - 为KIP-629重新命名kafka-console-consumer CLI命令行参数
[KAFKA-10589] - 重新命名KIP-629的kafka-replica-verification CLI命令行参数
[KAFKA-12158] - 考虑改进RaftClient.scheduleAppend的返回类型。
[KAFKA-12173] - 将streams:streams-scala模块迁移到JUnit 5。
[KAFKA-12267] - 实现DescribeTransactions API
[KAFKA-12368] - RSM和RLMM的非内存实现。
[KAFKA-12369] - 实现ListTransactions API
[KAFKA-12429] - 内部topic中所有消息类型的Serdes,在RLMM的默认实现中使用。
[KAFKA-12434] - DescribeProducers的Admin API
[KAFKA-12441] - 删除已废弃的方法StreamsBuilder#addGlobalStore
[KAFKA-12449] - 移除已废弃的WindowStore#put
[KAFKA-12450] - 移除ReadOnlyWindowStore中被废弃的方法
[KAFKA-12451] - 移除WindowStore中基于长的读操作的废弃注释
[KAFKA-12452] - 移除ProcessorContext#forward的废弃重载
[KAFKA-12467] - 实现QuorumController元数据快照
[KAFKA-12515] - ApiVersionManager应根据请求版本创建响应
[KAFKA-12536] - 为ReadOnlySessionStore添加基于即时的方法
[KAFKA-12552] - 从Log类中提取分段map到单独的类中。
[KAFKA-12553] - 重构日志层恢复逻辑
[KAFKA-12568] - 删除废弃的 "KStream#groupBy/join"、"Join#named "重载。
[KAFKA-12571] - 消除LeaderEpochFileCache构造函数对LogEndOffset的依赖。
[KAFKA-12575] - 消除Log.isLogDirOffline的布尔属性。
[KAFKA-12586] - DescribeTransactions的Admin API
[KAFKA-12596] - 删除topicCommands中废弃的--zookeeper。
[KAFKA-12597] - 移除ReassignPartitionsCommands中已废弃的--zookeeper。
[KAFKA-12598] - 移除ConfigCommand中废弃的--zookeeper。
[KAFKA-12630] - 移除废弃的KafkaClientSupplier#getAdminClient
[KAFKA-12631] - 支持api辞去raft领导
[KAFKA-12633] - 移除废弃的 "TopologyTestDriver#pipeInput / readOutput"
[KAFKA-12683] - 移除废弃的 "UsePreviousTimeOnInvalidTimeStamp"。
[KAFKA-12709] - ListTransactions的Admin API
[KAFKA-12716] - 终止transactions的Admin API
[KAFKA-12758] - 创建一个新的 "server-common"模块并将ApiMessageAndVersion、RecordSerde、AbstractApiMessageSerde和BytesApiMessageSerde移至该模块。
[KAFKA-12790] - 删除 SslTransportLayerTest.testUnsupportedTlsVersion
[KAFKA-12796] - 删除 `streams-scala` 下不推荐使用的类
[KAFKA-12808] - 删除 StreamsMetrics 下已弃用的方法
[KAFKA-12809] - 删除 Stores 下已弃用的方法
[KAFKA-12810] - 删除启用的TopologyDescription.Source#topics
[KAFKA-12813] - 删除 ProcessorContext 中已弃用的调度方法
[KAFKA-12814] - 删除不推荐使用的方法 StreamsConfig#getConsumerConfig
[KAFKA-12816] - 添加层存储配置。
[KAFKA-12863] - 配置控制器快照生成
[KAFKA-12884] - 在系统测试中删除“--zookeeper”
[KAFKA-12888] - 添加transaction工具
[KAFKA-12905] - 用 Mockito 替换 EasyMock 和 PowerMock 为 NamedCacheMetricsTest
[KAFKA-12924] - 在流模块(指标)中用 Mockito 替换 EasyMock 和 PowerMock
[KAFKA-12929] - KIP-750:在 Kafka 3.0 中弃用对 Java 8 的支持
[KAFKA-12930] - KIP-751:在 Kafka 3.0 中弃用对 Scala 2.12 的支持
[KAFKA-12940] - 在 Jenkins 中启用 JDK 16 构建
[KAFKA-12944] - KIP-724:当 IBP 为 3.0 或更高时,假设消息格式版本为 3.0
[KAFKA-12952] - 元数据快照文件分隔符
[KAFKA-12955] - 修复 LogLoader 以传递要删除的段的物化视图
[KAFKA-12979] - 在transaction工具中实现 --find-hanging API
[KAFKA-12992] - 公开 kraft 配置属性
[KAFKA-13011] - 更新 deleteTopics Admin API
[KAFKA-13015] - 为元数据快照创建系统测试
[KAFKA-13023] - 在 V3.0 中将“范围,合作粘性”作为默认分配器
[KAFKA-13059] - 更新 DeleteConsumerGroupOffsetsHandler
[KAFKA-13062] - 重构 DeleteConsumerGroupsHandler
[KAFKA-13063] - 重构 DescribeConsumerGroupsHandler
[KAFKA-13064] - 重构 ListConsumerGroupOffsetsHandler
[KAFKA-13072] - 重构 RemoveMembersFromConsumerGroupHandler
[KAFKA-13090] - 改进集群快照集成测试
[KAFKA-13113] - 向 RaftClient 添加取消注册支持。
[KAFKA-13114] - 当内存快照丢失时,在放弃期间取消注册监听器
[KAFKA-13116] - KIP-724:由于 KAFKA-12944 调整系统测试
[KAFKA-13165] - 验证节点 ID、进程角色和法定投票人
kraft模式脱离zookepeer, 推荐使用什么监控系统
https://github.com/orchome/KafkaOffsetMonitor