Kafka 3.5.0版本发布说明

半兽人 发表于: 2023-06-18   最后更新时间: 2023-06-25 20:26:04  
{{totalSubscript}} 订阅, 2,035 游览

2023年6月15日,Kafka 3.5.0发布。

以下是Kafka 3.5.0版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程。

有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。

改进

[KAFKA-6586] - 重构连接可执行
[KAFKA-7109] - KafkaConsumer应在关闭时关闭其增量获取会话
[KAFKA-7499] - 扩展ProductionExceptionHandler以涵盖序列化异常
[KAFKA-10244] - 一个新的java接口来替代 "kafka.common.MessageReader"。
[KAFKA-10575] - StateRestoreListener#onRestoreEnd应该总是被触发的。
[KAFKA-12446] - 定义KGroupedTable#aggregate减法器+加法器的执行顺序
[KAFKA-12634] - 恢复完成后应该检查点。
[KAFKA-13659] - MM2应该在启动时读取所有的偏移量同步信息
[KAFKA-13771] - 支持显式删除已过期但未自动清理的授权令牌
[KAFKA-13817] - 将nextTimeToEmit安排在每次的系统时间,而不是只安排一次
[KAFKA-13999] - 增加ProducerCount度量(KIP-847)。
[KAFKA-14021] - MirrorMaker 2应该实现KIP-618 APIs
[KAFKA-14084] - 使用KRaft模式时支持SCRAM
[KAFKA-14253] - StreamsPartitionAssignor应该在分配日志中打印成员数
[KAFKA-14285] - 当配置为空时在zookeeper中删除配额节点
[KAFKA-14351] - 在KRaft中实施控制器变异配额
[KAFKA-14365] - 从Fetcher中提取通用逻辑
[KAFKA-14376] - 添加ConfigProvider以利用环境变量
[KAFKA-14395] - 添加配置以配置KafkaStreams的客户端供应商
[KAFKA-14491] - 在Kafka流中引入版本控制的键值存储。
[KAFKA-14565] - 拦截器资源泄漏
[KAFKA-14570] - 问题描述缺少结尾括号符号
[KAFKA-14610] - 任务提交方法中的Publish Mirror Maker 2 offset syncs
[KAFKA-14617] - 不应允许具有陈旧的broker纪元的复本加入ISR
[KAFKA-14638] - transaction.timeout.ms的文档应该更精确。
[KAFKA-14666] - MM2应该在复制流后面转义消费者组的偏移量
[KAFKA-14680] - Gradle版本升级7-->>8
[KAFKA-14720] - KIP-906: 工具迁移指南
[KAFKA-14722] - 将BooleanSerde公开
[KAFKA-14732] - 在重新配置连接器任务时使用指数回退重试机制
[KAFKA-14740] - 缺少MirrorSource指标的源标签
[KAFKA-14745] - MirrorSourceConnector不断创建ReplicationPolicy实例
[KAFKA-14758] - 从Fetcher中提取内部类以便在重构中重复使用
[KAFKA-14765] - 在启动时支持broker的SCRAM。
[KAFKA-14770] - 如果DN的字符串表示匹配,即使规范的DN不匹配,也允许为broker动态更新钥匙库。
[KAFKA-14771] - 在ConcurrentModificationException消息中包括当前线程的ID。
[KAFKA-14775] - 支持SCRAM用于经纪人对控制器的认证
[KAFKA-14776] - 更新SCRAM集成测试,以便与KRaft一起运行
[KAFKA-14795] - 为RemoteLogMetadata提供消息格式化。
[KAFKA-14814] - 当提出多余的恢复请求时,跳过连接器的重新启动。
[KAFKA-14827] - 支持Benchmark中的StandardAuthorizer
[KAFKA-14829] - 整合PartitionReassignmentReplicas中的重新分配逻辑
[KAFKA-14834] - 改进版本存储的处理器语义
[KAFKA-14837] - MM2MirrorCheckPointConnector将经常重新平衡,当源集群组多且经常变化时(但配置的同步组列表没有变化)。
[KAFKA-14838] - MM2工作者/连接者/任务客户端应根据流量和角色指定客户端ID。
[KAFKA-14842] - MirrorCheckpointTask可以减少每次轮询时不相关组的 "listConsumerGroupOffsets(group) "的rpc调用。
[KAFKA-14881] - 为SCRAM ZKKRaft迁移更新UserScramCredentialRecord。
[KAFKA-14883] - 在KRaft法定人数中,broker的状态应该是 "观察者"。
[KAFKA-14887] - ZK会话超时可能导致broker关闭
[KAFKA-14988] - 为CVE-2022-36944升级scalaCollectionCompact至v2.9

Bug

[KAFKA-5756] - flush时的同步问题
[KAFKA-6793] - 不必要的警告日志信息
[KAFKA-6891] - KafkaConnect中应允许send.buffer.bytes设置为-1
[KAFKA-8713] - [Connect] JsonConverter的NULL值被替换为默认值,即使在NULLABLE字段中。
[KAFKA-9087] - ReplicaAlterLogDirs卡住了,重启失败,出现java.lang.IllegalStateException: 未来副本的偏移量不匹配
[KAFKA-9981] - 运行一个有多个节点的专用mm2集群,当配置被更新时,任务不知道,会失去更新操作。
[KAFKA-12468] -初始偏移量从源集群复制到目标集群。
[KAFKA-12558] - MM2可能无法正确同步分区偏移量。
[KAFKA-12639] - AbstractCoordinator在加入消费者组时忽略了回退超时。
[KAFKA-13891]--同步组失败,出现rebalanceInProgress错误,因为在coopeartive中重新平衡了许多次。
[KAFKA-14016] - 在协作再平衡中撤销的分区比预期的多
[KAFKA-14054] - 由于TimeoutException被当作IllegalStateException抛出,客户端意外关闭。
[KAFKA-14072] - 崩溃的MirrorCheckpointConnector在REST API中显示为运行。
[KAFKA-14128] - Kafka Streams在topic检查时终止。
[KAFKA-14139] - 更换的磁盘可能导致已提交的数据丢失,即使是在非空的ISR中也是如此
[KAFKA-14172] - 错误: 当任务在EOS下被重新分配时,状态存储器会丢失状态。
[KAFKA-14295] - FetchMessageConversionsPerSec表没有记录。
[KAFKA-14311] - Connect Worker清理关闭时不能清理地停止连接器/任务
[KAFKA-14317] - ProduceRequest超时被记录为网络异常
[KAFKA-14420] - MirrorMaker不应该清除目标topic上的过滤的配置
[KAFKA-14455] - Kafka Connect创建和更新REST APIs应该在写入配置topic时浮现出故障。
[KAFKA-14463] - ConnectorClientConfigOverridePolicy在工作者关闭时未被关闭
[KAFKA-14531] - KRaft控制器基于时间的快照过于频繁
[KAFKA-14544] - 未来日志变成当前日志后,应将 "is-future "从度量标签中删除。
[KAFKA-14545] - 当组没有从某些分区消费时,MirrorCheckpointTask抛出NullPointerException。
[KAFKA-14564] - 升级Netty至4.1.86.Final以修复CVEs
[KAFKA-14639] - Kafka CooperativeStickyAssignor在一个再平衡周期内撤销/分配分区
[KAFKA-14644] - raft IO线程失败后应停止进程
[KAFKA-14645] - 通过REST API检索连接器插件的配置定义时,没有使用插件的classloader。
[KAFKA-14649] - 连接插件的实例化失败会将其他插件从REST API中隐藏起来,或使工作者崩溃。
[KAFKA-14650] - IQv2在访问任务时可能抛出ConcurrentModificationException。
[KAFKA-14659] - source-record-write-[rate|total]指标包括过滤的记录
[KAFKA-14660] - 除以零的安全漏洞(sonatype-2019-0422)。
[KAFKA-14664] - Raft闲置率不准确
[KAFKA-14676] - 用于OIDC的令牌端点URL无法在JAAS配置中设置
[KAFKA-14693] - KRaft控制器和ProcessExitingFaultHandler可以死锁关机
[KAFKA-14704] - Follower应在增加高水位之前截断。
[KAFKA-14717] - 如果在StreamThread完全关闭之前发生重新平衡,KafkaStreams就可以运行了。
[KAFKA-14727] - 连接EOS模式应定期调用任务提交
[KAFKA-14729] - 由于心跳线程的异常退出,kafakConsumer pollForFetches(timer)方法占用了大量的cpu。
[KAFKA-14743] - 用于获取请求指标的MessageConversionsTimeMs没有被更新
[KAFKA-14744] - 将OffsetFetch从版本<8转换为版本>=8时的NPE
[KAFKA-14774] - 被移除的监听器不应该是可重新配置的。
[KAFKA-14781] - 当broker没有配置授权者时,MM2在主题ACL同步期间记录误导性错误。
[KAFKA-14792] - LazyIndex.get()的竞赛条件
[KAFKA-14794] - 无法反序列化base64 JSON字符串
[KAFKA-14797] - 当保守的转译逻辑超过正的max.offset.lag时,MM2不会发出偏移量同步。
[KAFKA-14799] - 如果连接器试图中止空交易,则源任务失败。
[KAFKA-14800] - 升级snappy-java版本至1.1.9.1
[KAFKA-14801] - 编码的敏感配置在迁移前没有被解码
[KAFKA-14804] - 使用Gradle Swagger插件2.2.8构建Connect docs失败
[KAFKA-14809] - Connect错误地记录了源任务没有产生记录的情况
[KAFKA-14812] - 当发送失败时,ProducerPerformance仍然在控制台中计算成功的发送。
[KAFKA-14816] - Connect在联系非HTTPS URL时加载SSL配置
[KAFKA-14836] - 修复UtilsTest#testToLogDateTimeFormat在某些情况下的故障
[KAFKA-14839] - 从JavaDocs中排除受保护的变量
[KAFKA-14843] - 连接器插件配置端点不包括通用配置
[KAFKA-14853]--扩展ClusterResourceListener的serializer/deserialize不被添加到Metadata中
[KAFKA-14862] - 外层流-流连接在有多个输入分区时不输出所有结果
[KAFKA-14864] - 使用ON_WINDOW_CLOSE发射策略的KStreamWindowAggregate的内存泄漏
[KAFKA-14891] - 修复机架感知的范围分配器,以提高共同分区的机架感知能力
[KAFKA-14894] - MetadataLoader必须在加载快照后调用finishSnapshot。
[KAFKA-14902] - KafkaBasedLog无限重试可能导致StackOverflowError
[KAFKA-14943] - 修复ClientQuotaControlManager的验证
[KAFKA-14946] - KRaft控制器节点在放弃领导权时关机
[KAFKA-14978] - ExactlyOnceWorkerSourceTask不删除父级指标
[KAFKA-14980] - MirrorMaker消费者没有得到以source.cluster为前缀的配置。
[KAFKA-14994] - jose4j存在CVE-不当加密算法的漏洞
[KAFKA-14996] - KRaft控制器应正确处理过大的用户操作
[KAFKA-15003] - 当主题的分区改变时,TopicIdReplicaAssignment在迁移(双写)中不被更新
[KAFKA-15004] - 在zk到kraft的迁移过程中,主题配置的变化不会被同步(双写)。
[KAFKA-15007] - 在迁移中MetadataPropagator的MV设置不正确。
[KAFKA-15009] - 在迁移过程中,新的ACL没有被写入ZK。
[KAFKA-15010] - KRaft控制器在成为新的控制器时,在双写模式下不能与Zookeeper元数据进行协调。
[KAFKA-15015] - 二进制文件包含两个版本的reload4j
[KAFKA-15019] - 改进对broker心跳超时的处理。
[KAFKA-15044] - Snappy v.1.1.9.1在ARM机器上发现NoClassDefFound

任务

[KAFKA-10586] - 完全支持MirrorMaker 2.0专用集群中的分布式模式
[KAFKA-14530] - 在进程循环中不止一次地检查状态更新器
[KAFKA-14708] - 删除kafka.examples.ConsumerShutdownableThread的依赖性
[KAFKA-14731] - 升级ZooKeeper到3.6.4
[KAFKA-14749] - 重新启用 "spotlessScalaCheck "任务(在Jenkinsfile)。
[KAFKA-14869] - txn和组协调器降级基础
[KAFKA-14974] - 恢复KafkaBasedLog中的后向兼容性
[KAFKA-14983] - 升级jetty-server到9.4.51

测试

[KAFKA-12566] - 测试MirrorConnectorsIntegrationSSLTest#testReplication时出现问题。
[KAFKA-14529] - 修复失败的KafkaServerKRaftRegistrationTest
[KAFKA-14534] - TransactionsExpirationTest.testTransactionAfterProducerIdExpires
[KAFKA-14905] -KIP-894以来在MM2 ForwardingAdmin测试中失败的测试
[KAFKA-14929] - KafkaStatusBackingStoreFormatTest#putTopicStateRetriableFailure

子任务

[KAFKA-9550] - RemoteLogManager - 将符合条件的日志段复制到远程存储实现
[KAFKA-9990] - 在分层存储中支持交易
[KAFKA-13020] - SnapshotReader应该解码并报告头中的追加时间
[KAFKA-13369] - 分层存储的跟随者获取协议增强。
[KAFKA-13884] - KRaft观察者不需要在每次追加时进行flush。
[KAFKA-14003] - 第二部分
[KAFKA-14367] - 引入`GroupCoordinator`接口
[KAFKA-14391] - 增加ConsumerGroupHeartbeat API
[KAFKA-14425] - Kafka协议应该支持nullable结构
[KAFKA-14451] - 如果配置了消费者机架,使范围分配器能够感知机架。
[KAFKA-14452] - 如果配置了消费者机架,使粘性分配器具有机架意识。
[KAFKA-14466] - 将ClassLoaderAwareRemoteStorageManager.scala重构为ClassLoaderAwareRemoteStorageManager.java,并将其移至存储模块。
[KAFKA-14468] - 重构提交逻辑
[KAFKA-14471] - 将IndexEntry及相关内容移至存储模块。
[KAFKA-14472] - 移动TransactionIndex和相关的存储模块
[KAFKA-14473] - 将AbstractIndex移至存储模块
[KAFKA-14474] - 移动OffsetIndex到存储模块
[KAFKA-14475] - 移动TimeIndex/LazyIndex到存储模块
[KAFKA-14476] - 移动OffsetMap到存储模块
[KAFKA-14477] - 将LogValidator和相关内容移至存储模块
[KAFKA-14478] - 将LogConfig/CleanerConfig移至存储模块
[KAFKA-14480] - 将ProducerStateManager移至存储模块
[KAFKA-14495] - 改进RemoteIndexCacheTest
[KAFKA-14521] - 用BrokerCompressionType取代BrokerCompressionCodec
[KAFKA-14543] - 将LogOffsetMetadata移至存储模块
[KAFKA-14549] - 将LogDirFailureChannel移至存储模块。
[KAFKA-14550] - 移动SnapshotFile和CorruptSnapshotException到存储模块
[KAFKA-14551] - 将LeaderEpochFileCache移至存储模块
[KAFKA-14554] - 将ClassLoaderAwareRemoteStorageManagerTest移至存储模块。
[KAFKA-14558] - 将LastRecord、TxnMetadata、BatchMetadata、ProducerStateEntry和ProducerAppendInfo移到存储模块。
[KAFKA-14568] - 将FetchDataInfo和相关的移至存储模块
[KAFKA-14575] - 将ClusterTool移至工具中
[KAFKA-14578] - 将ConsumerPerformance移至工具中
[KAFKA-14580] - 将EndToEndLatency移至工具中
[KAFKA-14582] - 将JmxTool移至工具中
[KAFKA-14586] - 将StreamsResetter移至工具中
[KAFKA-14590] - 将DelegationTokenCommand移至工具中
[KAFKA-14603] - 将KafkaMetricsGroup移至server-common模块。
[KAFKA-14607] - 将Scheduler/KafkaScheduler移至server-common中
[KAFKA-14611] - ZK代理不应该在注册期间发送纪元
[KAFKA-14628] - 移动CommandLineUtils和CommandDefaultOptions共享类
[KAFKA-14630] - 更新zstd-jni版本至1.5.5
[KAFKA-14653] - MM2应该延迟解析配置提供者的引用
[KAFKA-14673] - 在分区/日志层添加高水印监听器
[KAFKA-14678] - 将__consumer_offsets记录从核心移到组协调器上
[KAFKA-14679] - 增加新的__consumer_offsets记录
[KAFKA-14685] - 建立远程辅助日志的TierStateMachine接口
[KAFKA-14688] - 将org.apache.kafka.server.log.internals移至org.apache.kafka.storage.internals.log
[KAFKA-14706] - 将ShutdownableThread移至server-commons模块。
[KAFKA-14783] - 为连接器实现新的STOPPED状态
[KAFKA-14785] - 实现连接器偏移量读取REST API
[KAFKA-14793] - 在偏移量提交期间将主题Ids传播给组协调员
[KAFKA-14796] - 将ZK ACL迁移至KRaft
[KAFKA-14805] - KRaft 控制器不应该在迁移开始前允许元数据更新
[KAFKA-14840] - 以双写模式处理 KRaft 快照
[KAFKA-14850] - 引入InMemoryLeaderEpochCheckpoint以允许快速写入/读取
[KAFKA-14867] - 如果配置了client.rack,当复制架发生变化时,触发重新平衡。
[KAFKA-14876] - 3.5中新的Kafka Connect偏移管理REST API的公共文档
[KAFKA-14909] - KRaft控制器没有设置ZkMigrationReady标签字段
[KAFKA-14918] - KRaft控制器向KRaft broker发送ZK控制器RPCs

相关链接

英文原文:https://downloads.apache.org/kafka/3.5.0/RELEASE_NOTES.html

更新于 2023-06-25

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