Apache Kafka 发布 2.7.0 版本

Release Notes – Kafka – Version 2.7.0

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

关于升级的注意事项: 在升级你的集群之前,请仔细查看该版本的升级文档。升级说明讨论了任何关于不兼容的关键信息和突破性变化、性能变化以及可能影响你的Kafka生产部署的任何其他变化。

最新版本的文档可以在kafka.apache.org/documentati…找到。

新特性

  • [kafka-9893] – 可配置的TCP连接超时和改进初始元数据的获取
  • [kafka-9915] – 节制创建主题、创建分区和删除主题的操作
  • [kafka-10054] – 为流添加TRACE级别的端到端延迟指标
  • [kafka-10259] – KIP-554:增加经纪商侧SCRAM配置API
  • [kafka-10338] – 支持PEM格式的SSL证书和私钥

改进

  • [kafka-5636] – 为聚合添加滑动窗口支持

  • [kafka-6585] – 整合重置工具上的重复逻辑

  • [kafka-6733] – 支持在DefaultMessageFormatter中打印额外的ConsumerRecord字段

  • [kafka-7334] – 建议在出现FileNotFoundException时改变state.dir的配置。

  • [kafka-8360] – 文档中没有提到RequestQueueSize JMX metric。

  • [kafka-8836] – 添加经纪商之间的协议来改变ISR

  • [kafka-9018] – Kafka Connect – 在序列化错误时抛出更清晰的异常

  • [kafka-9076] – MirrorMaker 2.0自动化消费者偏移同步

  • [kafka-9194] – 缺少replicaMaxWaitTimeMs配置值的文档

  • [kafka-9439] – 为KafkaProducer添加更多公共API测试

  • [kafka-9450] – 将内部状态刷新与提交解耦

  • [kafka-9587] – 文档中省略了生产者的配置

  • [kafka-9924] – 在RocksDB指标中添加RocksDB内存消耗量

  • [kafka-9929] – 支持WindowStore上的反向迭代器

  • [kafka-10002] – 改善StopReplicaRequest在有大量分区需要删除时的表现

  • [kafka-10020] – KIP-616:重命名kafka-streams-scala中隐含的Serdes实例

  • [kafka-10023] – 强制执行整个经纪商和每个听众的连接创建率(KIP-612,第1部分)。

  • [kafka-10033] – 如果改变不存在的主题的配置,AdminClient应该抛出UnknownTopicOrPartitionException而不是UnknownServerException。

  • [kafka-10035] – 改进AbstractResetIntegrationTest

  • [kafka-10040] – 让PreferredReplicaImbalanceCount指标的计算更加高效

  • [kafka-10077] – 过滤state-store下游的虚假墓碑的结果

  • [kafka-10098] – 删除SaslAuthenticatorTest.java中正则表达式中不必要的转义。

  • [kafka-10106] – 记录处理LeaderAndIsr请求的时间

  • [kafka-10122] – 消费者在重新平衡期间也应该允许心跳。

  • [kafka-10126] – 废弃ConsumerPerformance中未使用的选项。

  • [kafka-10131] – 尽量减少ducktape测试中的–zookeeper标记的使用。

  • [kafka-10135] – 将Task#executeAndMaybeSwallow提取为一个通用的工具。

  • [kafka-10135] – 将Task#executeAndMaybeSwallow提取出来,成为TaskManager的一个通用函数。

  • [kafka-10141] – 为日志段的删除信息添加更多细节

  • [kafka-10143] – 增加集成测试,确保重新分配工具可以在重新平衡过程中改变复制配额

  • [kafka-10168] – 重新命名公共StreamsConfig变量

  • [kafka-10186] – 终止有待处理数据的事务应该抛出非致命性的异常

  • [kafka-10205] – StreamTask中的NullPointerException

  • [kafka-10211] – 添加DirectoryConfigProvider

  • [kafka-10225] – 增加系统测试的默认zk会话超时时间

  • [kafka-10232] – MirrorMaker2内部主题格式化

  • [kafka-10277] – 放宽对KStream-GlobalKTable连接的非空键要求。

  • [kafka-10279] – 允许动态更新带有额外SubjectAltNames的证书

  • [kafka-10305] – 当解析ConsumerPerformance失败时打印用法

  • [kafka-10316] – 考虑重新命名交互式查询的getter方法

  • [kafka-10355] – 将意外删除源主题作为特殊故障处理

  • [kafka-10367] – 允许使用配置文件运行Streams演示应用程序

  • [kafka-10403] – 在生成MBeans属性时用java集合代替scala集合。

  • [kafka-10407] – 为KafkaLog4jAppender添加linger.ms参数支持

  • [kafka-10418] – 通过kafka-topics与–bootstrap-server改变主题配置时,不完整的错误/文档

  • [kafka-10458] – 需要一种方法来更新用Sensor注册的TokenBucket的配额。

  • [kafka-10459] – 文档IQ API,其中存储之间的顺序不成立

  • [kafka-10478] – 广告.监听器应该允许重复的端口

  • [kafka-10494] – 流:如果节点本身是物化的,enableSendingOldValues不应该调用父节点。

  • [kafka-10503] – 当主题没有分区时,MockProducer不会抛出ClassCastException。

  • [kafka-10509] – 添加指标以跟踪因触及连接速率配额而导致的节流时间

  • [kafka-10521] – 移除完成分区重新分配的ZK手表

  • [kafka-10584] – IndexSearchType应该使用密封的trait而不是Enumeration

  • [kafka-10611] – 合并日志错误以避免双重错误

  • [kafka-10801] – 关于配置的文档有多处使用相同的HTML锚标签

  • [kafka-10802] – 启动消费者时出现虚假的日志信息

Bug

  • [kafka-6078] – 调查ReassignPartitionsClusterTest.shouldExpandCluster的失败。

  • [kafka-7970] – 缺少主题导致服务关闭而没有例外

  • [kafka-8033] – 摇摆不定的测试PlaintextConsumerTest#testFetchInvalidOffset

  • [kafka-8098] – 明显的测试AdminClientIntegrationTest#testConsumerGroups

  • [kafka-8264] – 诡异的测试PlaintextConsumerTest#testLowMaxFetchSizeForRequestAndPartition

  • [kafka-8334] – 偶尔会出现OffsetCommit超时

  • [kafka-8362] – 日志目录之间的分区移动后,LogCleaner会卡住。

  • [kafka-8630] – 使用WindowStore对流处理器进行单元测试时,出现了ClassCastException。

  • [kafka-9066] – Kafka Connect JMX : 失败状态的任务的源和汇任务指标丢失

  • [kafka-9381] – Javadocs + Scaladocs未在maven中心发布

  • [kafka-9514] – 当一个字段被设置为空时,协议生成器产生了无用的条件,并使用了灵活的版本

  • [kafka-9516] – 摇摆不定的测试PlaintextProducerSendTest#testNonBlockingProducer

  • [kafka-9584] – 删除头文件会导致并发修改异常。

  • [kafka-9666] – 事务性生产者的Epoch无法被重置

  • [kafka-9769] – ReplicaManager Partition.makeFollower 在ZooKeeper断开连接时增加LeaderEpoch

  • [kafka-9845] – plugin.path属性与config provider不起作用。

  • [kafka-10014] – 总是尝试在Selector#close中关闭所有通道

  • [kafka-10048] – 使用MM2时,消费者在故障转移后可能会出现数据缺口

  • [kafka-10079] – 改善有状态任务的线程级粘性

  • [kafka-10109] – kafka-acls.sh/AclCommand打开多个AdminClients

  • [kafka-10120] – DescribeLogDirsResult暴露了内部类

  • [kafka-10133] – 无法用MM2压缩目的地集群中的消息

  • [kafka-10134] – 升级到2.5后,Kafka消费者在重新平衡时出现高CPU问题

  • [kafka-10140] – 增量配置api不包括插件配置的变化

  • [kafka-10147] – MockAdminClient#describeConfigs(Collection

    )无法处理经纪人资源。

  • [kafka-10158] – 修复闪烁的kafka.admin.TopicCommandWithAdminClientTest#testDescribeUnderReplicatedPartitionsWhenReassignmentIsInProgress。

  • [kafka-10160] – Kafka MM2消费者配置

  • [kafka-10179] – State Store将错误的Changelog主题传递给Serde,以获得优化的源表

  • [kafka-10180] – TLSv1.3系统测试不应该在Java 8下运行

  • [kafka-10188] – 水槽任务preCommit方法在任务停止后被调用

  • [kafka-10189] – 重置公制EventQueueTimeMs

  • [kafka-10192] – 摇摆不定的测试 BlockingConnectorTest#testBlockInConnectorStop

  • [kafka-10193] – 为有回调的控制器事件添加优先权

  • [kafka-10200] – MockProcessorContext与WindowStores不起作用

  • [kafka-10215] – MockProcessorContext不能与SessionStores一起工作

  • [kafka-10218] – DistributedHerder的canReadConfigs字段从未被重置为true。

  • [kafka-10220] – 描述资源时的NPE

  • [kafka-10224] – 关于球衣的许可条款不正确

  • [kafka-10235] – 修复闪烁的transactions_test.py

  • [kafka-10240] – 水槽任务不应该在关闭时抛出WakeupException

  • [kafka-10243] – 处理连接设置超时时的ConcurrentModificationException

  • [kafka-10268] – 像”–delete-config log.retention.ms “这样的动态配置不起作用。

  • [kafka-10271] – 从一个分区获取一个密钥时的性能退步

  • [kafka-10272] – kafka-server-stop.sh在IBM i上失败。

  • [kafka-10282] – 如果一个日志被快速删除并重新创建,日志指标会被删除

  • [kafka-10284] – 由于静态成员重新加入而导致的组成员更新应该被持久化

  • [kafka-10300] – 修理飘忽不定的core/group_mode_transactions_test.py

  • [kafka-10312] – MetadataCache.getPartitionMetadata在分区领导不在MetadataCache时可能会返回不正确的错误代码。

  • [kafka-10314] – 当离线日志目录存在时,重新分配的KafkaStorageException

  • [kafka-10321] – shouldDieOnInvalidOffsetExceptionDuringStartup在JDK11上会永远阻塞。

  • [kafka-10326] – 串行器和反串行器都应该能够看到生成的客户端ID。

  • [kafka-10332] – 如果先创建了远程主题,MirrorMaker2就无法检测主题。

  • [kafka-10340] – 当试图向不存在的主题生成记录时,源连接器应报告错误,而不是永远挂起。

  • [kafka-10362] – 当用EOS恢复Streams活动任务时,检查点文件应该被删除。

  • [kafka-10384] – 将转换器与生成的消息分开

  • [kafka-10387] – 不能将SMT配置与使用topic.creation.*属性的源连接器一起包含。

  • [kafka-10391] – 流应该覆盖检查点,排除损坏的分区

  • [kafka-10395] – TopologyTestDriver在动态主题路由中不工作

  • [kafka-10401] – GroupMetadataManager忽略了GROUP_METADATA_VALUE_SCHEMA_V3的current_state_timestamp域。

  • [kafka-10426] – KafkaConfigBackingStore的死锁问题

  • [kafka-10439] – Connect的Values类对大于64位的整数失去了精度

  • [kafka-10454] – 当流<>表连接分区不匹配时,Kafka流卡在了无限的REBALANCING循环中

  • [kafka-10455] – 探测再平衡不能保证由非领导成员触发

  • [kafka-10463] – Dockerfile中的必要工具应包括git

  • [kafka-10477] – 当试图将空键的Kafka记录转换为连接记录时,Sink Connector出现了DataException故障。

  • [kafka-10479] – 如果用户试图更新现有监听器的配置,则抛出异常。

  • [kafka-10502] – 线程本地不能设置null,因为它可能会产生内存泄漏。

  • [kafka-10515] – NPE:如果应用程序是分布式的,外键连接serde可能不会被初始化为默认serde。

  • [kafka-10520] – 如果最少加载的节点没有准备好发送,InitProducerId可能会被阻止。

  • [kafka-10531] – KafkaBasedLog可以对负值进行休眠

  • [kafka-10557] – 描述主题配置时缺少文档,包括文档

  • [kafka-10559] – 在内部主题验证时,不要在出现TimeoutException时关闭整个应用程序

  • [kafka-10564] – 持续记录关于删除过时的状态目录的情况

  • [kafka-10574] – SimpleHeaderConverter和Values类中的无限循环

  • [kafka-10598] – KafkaStreams为IQ报告不适当的错误信息

  • [kafka-10600] – 如果连接器没有定义属性,Connect会在验证结果中为该属性添加错误。

  • [kafka-10602] – 当从不同线程报告时,DLQ Reporter会抛出NPE。

  • [kafka-10606] – 在获取所有主题的元数据时自动创建不存在的主题

  • [kafka-10613] – 如果list-offset请求的版本<4,Broker不应该设置leader epoch

  • [kafka-10616] – StreamThread被 “IllegalStateException: 处理器已经关闭了”

  • [kafka-10631] – ProducerFencedException在Offest Commit上没有被处理。

  • [kafka-10638] – 由于更严格的存储检查,QueryableStateIntegrationTest失败。

  • [kafka-10647] – 只有当消费者协议版本>=0时,才会序列化拥有的分区

  • [kafka-10651] – 指派者报告来自未初始化任务的偏移量

  • [kafka-10664] – Streams无法覆盖损坏的偏移量,导致无限的OffsetOutOfRangeException循环。

  • [kafka-10687] – 生产请求应针对新的错误代码PRODUCE_FENCED进行碰撞。

  • [kafka-10755] – 在计算下一次提交时间戳时,应考虑提交延迟。

  • [kafka-10758] – 当添加一个新的主题时,从模式中消耗的Kafka流会进入PENDING_SHUTDOWN。

  • [kafka-10799] – AlterIsr路径不更新ISR的收缩/扩展表。

  • [kafka-10811] – 系统退出MirrorConnectorsIntegrationTest#testReplication

  • [kafka-10813] – StreamsProducer应该捕获InvalidProducerEpoch并在所有情况下抛出TaskMigrated。

##任务

  • [kafka-10068] – 验证HighAvailabilityTaskAssignor在大型集群和拓扑结构下的性能
  • [kafka-10084] – 系统测试失败。StreamsEosTest.test_failure_and_recovery_complex
  • [kafka-10153] – 连接文档中的错误报告
  • [kafka-10341] – 为流和系统测试添加2.6版本
  • [kafka-10456] – kafka-console-producer.sh帮助中的错误描述
  • [kafka-10556] – 如果sasl.mechanism未被识别,则出现NPE。
  • [kafka-10592] – python3合并后系统测试无法运行
  • [kafka-10669] – ListOffsetRequest: make CurrentLeaderEpoch field ignorable and set MaxNumOffsets field to 1

##测试

  • [kafka-9273] – 重构AbstractJoinIntegrationTest和子类
  • [kafka-9943] – 在系统测试中启用TLSv.1.3 “运行所有 “执行。
  • [kafka-10191] – 修复闪烁的StreamsOptimizedTest
  • [kafka-10255] – 修理易碎的testOneWayReplicationWithAutorOffsetSync1测试
  • [kafka-10286] – 连接系统测试应等待工作者加入小组
  • [kafka-10295] – ConnectDistributedTest.test_bounce应该等待优雅的停止。
  • [kafka-10351] – 为GlobalStateManagerImpl添加缺失的IOExceptions测试
  • [kafka-10404] – Flaky Test kafka.api.SaslSslConsumerTest.testCoordinatorFailover

子任务

  • [kafka-9432] – 用自动协议替换DescribeConfigs请求/响应
  • [kafka-9434] – 用自动协议替换AlterReplicaLogDirs请求/响应
  • [kafka-9627] – 用自动协议替换ListOffset请求/响应
  • [kafka-9629] – 用自动协议替换Fetch请求/响应
  • [kafka-9911] – 实施新的生产者围栏错误
  • [kafka-10027] – 实现功能版本计划的读取路径
  • [kafka-10028] – 实现特征版本计划的写路径
  • [kafka-10042] – 使INVALID_PRODUCER_EPOCH可从Produce响应中中止。
  • [kafka-10163] – 实施经纪商方面的变化
  • [kafka-10164] – 实施管理员方面的更改
  • [kafka-10174] – 倾向于使用kafka_configs.sh进行 –bootstrap-server ducktape测试
  • [kafka-10213] – 在Kafka客户端的ducktape测试中首选–bootstrap-server
  • [kafka-10258] – 摆脱kafka.py公共方法中的use_zk_connection标志。
  • [kafka-10261] – 引入带垫片的KIP-478处理器
  • [kafka-10270] – 在控制器通道管理器中添加一个经纪人,以重定向AlterConfig
  • [kafka-10308] – 修复易碎的core/round_trip_fault_test.py
  • [kafka-10319] – 修复Trunk上的未知偏移量和
  • [kafka-10379] – 实现KIP-478的StreamBuilder#addGlobalStore()
  • [kafka-10435] – 为KIP-595修改获取协议
  • [kafka-10437] – KIP-478:实施测试-实用程序变更
  • [kafka-10447] – 将工具模块迁移到JUnit 5
  • [kafka-10516] – 实施Topic Command变更
  • [kafka-10535] – KIP-478:实现StateStoreContext和Record
  • [kafka-10536] – KIP-478:实现KStream变更
  • [kafka-10562] – KIP-478:将存储包装器委托给新的init方法
  • [kafka-10570] – 重命名KIP-629的JMXReporter配置
  • [kafka-10571] – 将KIP-629的blackout的出现替换为backoff的出现
  • [kafka-10572] – 为KIP-629重命名MirrorMaker 2的黑名单配置。
  • [kafka-10573] – 重命名KIP-629的连接转换配置
  • [kafka-10599] – 实现功能版本系统的基本CLI工具
  • [kafka-10605] – KIP-478:废止被替换的处理器API成员
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享