2023年2月7日,Kafka 3.4.0发布。
以下是Kafka 3.4.0版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程。
有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。
新功能
[KAFKA-10360] - 禁用 JmxReporter 注册
[KAFKA-13602] - 允许广播一个结果记录
[KAFKA-13715] - 将“generation”字段添加到消费者协议中
[KAFKA-14286] - 基于时间的集群元数据快照
改进
[KAFKA-10149] - 当重新分配工作时,不要阻止自动优先选举
[KAFKA-12878] - 支持 --bootstrap-server kafka-streams-application-reset
[KAFKA-12960] - WindowStore和SessionStore不执行严格的保留时间
[KAFKA-13401] - 引入一个新的接口来管理MM2中的Kafka资源
[KAFKA-13731] - 独立的Connect工作者不应该需要连接器的配置来启动
[KAFKA-13764] - Connect 增量再平衡逻辑的潜在改进
[KAFKA-13809] - FileStreamSinkConnector 和 FileStreamSourceConnector 应将完整配置传播到任务
[KAFKA-14017] - 文件源连接器应实现 KIP-618 API
[KAFKA-14095] - 改进MirrorMaker中对同步偏移失败的处理。
[KAFKA-14097] - 为生产者ID过期进行单独的配置
[KAFKA-14098] - Kafka Connect使用的内部Kafka客户端应具有可区分的客户端ID
[KAFKA-14130] - 将RackAwarenessIntegrationTest缩减为一个单元测试
[kafka-14146] - kip-840: ConsoleProducer/ConsoleConsumer中MessageReader/MessageFormatter的配置文件选项
[KAFKA-14160] - 简化Connect中的clusterId检索。
[KAFKA-14162] - HoistField和MaskField SMTs不应返回不可变的地图/列表
[KAFKA-14176] - 减少WorkerConfig.lookupKafkaClusterId的可见性
[KAFKA-14206] - 将zookeeper升级到3.7.1以解决安全漏洞。
[KAFKA-14212] - 当点击公共OAuth/OIDC提供者时获取错误响应
[KAFKA-14239] - 将StateRestorationIntegrationTest并入RestoreIntegrationTest。
[KAFKA-14293] - Basic Auth过滤器应在成功登录后设置SecurityContext
[KAFKA-14294] - Kafka流在没有处理记录时应提交事务
[KAFKA-14342] - KafkaOffsetBackingStore应在墓碑消息上清除源分区的偏移量
[KAFKA-14344] - 通过建立EmbeddedKafkaCluster与所有客户端使用的共同配置来改进MM2集成测试
[KAFKA-14346] - 从内部Connect APIs中删除静态方法,以方便测试
[KAFKA-14375] - 删除EndToEndAuthorizationTest.scala中"authorizer-properties"的使用。
[KAFKA-14392] - KRaft代理心跳超时不应超过broker.session.timeout.ms
[KAFKA-14398] - 更新EndToEndAuthorizerTest.scala以测试ZK和KRAFT的法定人数服务器
[KAFKA-14414] - 删除对ObjectSerializationCache的不必要的使用。
[KAFKA-14430] - 优化:-Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT
Bug
[KAFKA-4852] - ByteBufferSerializer与偏移量不兼容
[KAFKA-12476] - 工作者阻塞的时间可能超过预定的再平衡延迟和/或会话密钥TTL
[KAFKA-12495] - 不平衡的连接器/任务分配会在Connect的增量合作分配器中发生
[KAFKA-12497] - 即使在任务失败后,源任务偏移提交仍在继续
[KAFKA-12610] - Classpath上的资源会破坏PluginClassLoader的隔离性
[KAFKA-12699] - Streams不再重写java默认的未捕获异常处理器。
[KAFKA-13518] - 更新Gson的依赖性
[KAFKA-13546] - 明确指定默认主题创建组不应该使连接器失败。
[KAFKA-13586] - 在连接器/任务启动时,FileConfigProvider抛出的ConfigExceptions使工人崩溃。
[KAFKA-13632] - MirrorMaker 2.0 NPE和警告 "提交记录失败 "的过滤记录
[KAFKA-13702] - Connect RestClient在请求失败时重写响应状态代码
[KAFKA-13725] - KIP-768 OAuth代码在同一个包中混合了公共和内部类。
[KAFKA-13730] - 如果OAuth访问令牌不包含 "子 "要求,则验证失败
[KAFKA-13769] - 如果上游的非key-changing操作改变了key serializer,KTable FK join可能会错过记录。
[KAFKA-13927] - Kafka Connect Sink Connector在RetriableException后成功,没有向远程提交偏移。
[KAFKA-13952] - 无限次重试超时不起作用
[KAFKA-13971] - 不正确使用ConcurrentHashMap导致的原子性违反。
[KAFKA-13985] - 如果SMT过滤掉源记录,MirrorSourceTask commitRecord会产生NPE。
[KAFKA-13989] - 当插件被删除时,获取连接器调用失败
[KAFKA-14007] - 连接头转换器从未被关闭
[KAFKA-14009] - 当静态成员重新加入时,重新平衡的超时应被更新
[KAFKA-14012] - 在`Utils.closeQuietly`方法中传递 "方法 "导致NPE
[KAFKA-14015] - 带有ttl的ConfigProvider无法重新启动任务
[KAFKA-14039] - 修复KRaft AlterConfigPolicy的使用。
[KAFKA-14079] - 如果 "error.tolerance "设置为 "all",源任务将不会提交偏移量并出现内存泄漏。
[KAFKA-14099] - Kafka连接中没有REST API请求日志
[KAFKA-14111] - KRaft中 "密码 "配置的动态配置更新失败
[KAFKA-14115] - 密码配置在KRaft中以明文记录
[KAFKA-14122] - 测试DynamicBrokerReconfigurationTest.testKeyStoreAlter时出现问题。
[KAFKA-14136] - KRaft中的AlterConfigs不会为未改变的值生成记录
[KAFKA-14194] - Cluster.nodeIfOnline中的NPE
[KAFKA-14225] - 懒惰的val exemptSensor可能导致死锁
[KAFKA-14236] - ListGroups请求在授权器中产生过多的拒绝日志
[KAFKA-14260] - InMemoryKeyValueStore迭代器仍然抛出ConcurrentModificationException
[KAFKA-14270] - Kafka Streams在启动时出现异常。
[KAFKA-14282] - RecordCollector在消息处理时抛出异常
[KAFKA-14292] - KRaft经纪人控制的关机可以无限期地延迟
[KAFKA-14296] - 分区领导在卡夫特控制的关闭期间不被降级
[KAFKA-14300] - 辞职后KRaft控制器快照不触发
[KAFKA-14303] - 没有记录键和batch.size=0的Producer.send会进入无限循环。
[KAFKA-14314] - MirrorSourceConnector在 "isCycle "检查中抛出NPE。
[KAFKA-14316] - 功能控制迭代器中的NoSuchElementException
[KAFKA-14320] - 为CVE修复升级Jackson
[KAFKA-14324] - [CVE-2018-25032] 由rocksdbjni:6.29.4.1引进的
[KAFKA-14325] - ProcessorParameters.toString中的NullPointer
[KAFKA-14334] - 当作为跟随者追加时,DelayedFetch purgatory没有完成。
[KAFKA-14337] - 删除后不能创建带有". "的主题名称
[KAFKA-14339] - 即使偏移量不能被序列化,源任务生产者也会提交事务
[KAFKA-14355] - 在kafka-producer-perf-test.sh(类ProducerProfrmance)中发生整数溢出。
[KAFKA-14358] - 用户不应该能够创建一个普通的主题名称__cluster_metadata
[KAFKA-14360] - 文档: 流媒体安全页面有破损的链接
[KAFKA-14372] - RackAwareReplicaSelector应该从isr中选择一个副本
[KAFKA-14379] - 消费者应该在更新元数据时刷新首选的读副本
[KAFKA-14382] - StreamThreads在重新平衡期间处理记录时可能会错过重新平衡事件
[KAFKA-14388] - 使用新的处理器API检索StateStore时出现NPE
[KAFKA-14406] - 要恢复成批的记录的双重迭代
[KAFKA-14413] - 每个连接器都有独立的MirrorMaker配置
[KAFKA-14415] - 每增加一个状态存储,ThreadCache就会变慢。
[KAFKA-14422] - 在新的静态成员加入一个不支持静态成员的组后,消费者重新平衡被卡住。
[KAFKA-14432]--RocksDBStore依赖终结者来避免泄漏内存
[KAFKA-14443] - Mirror Maker连接器泄露用于创建主题的管理员客户端
[KAFKA-14457] - 法定人数控制器围栏经纪商度量的不一致
[KAFKA-14496] - OIDC OAuthBearerLoginCallbackHandler使用错误的Base64编码器
[KAFKA-14531] - KRaft控制器基于时间的快照过于频繁
[KAFKA-14532] - 当分区未被分配时,正确地处理失败的获取。
[KAFKA-14557] - 使用metadata.log.dir时缺少.lock文件
[KAFKA-14571] - ZkMetadataCache.getClusterMetadata在aliveNodes中缺少机架信息
[KAFKA-14612] - 即使主题创建失败,也会将主题配置记录写入日志
[KAFKA-14618] - 在生成的快照ID中出现一个错误,导致错误地获取。
[KAFKA-14623] - OAuth的HttpAccessTokenRetriever可能会在日志中泄露秘密。
[KAFKA-14637] - 由于不兼容的meta.properties检查,从旧版本(<0.10)升级到3.4是失败的。
[KAFKA-14646] - SubscriptionWrapper的版本不兼容(Kafka Streams 3.2.3 -> 3.3.2)
[KAFKA-14656] - Brokers在ZK迁移期间拒绝LISR
任务
[KAFKA-13559] - broker的ProduceResponse可能会延迟300ms。
[KAFKA-13881] - 为公共包javadoc添加package.java
[KAFKA-14279] - 在broker/客户和流升级/兼容性测试中添加3.3.1
测试
[KAFKA-12935] - 片面测试RestoreIntegrationTest.shouldRecycleStateFromStandbyTaskPromotedToActiveTaskAndNotRestore
[KAFKA-14248] - 片状测试PlaintextAdminIntegrationTest.testCreateTopicsReturnsConfigs
[KAFKA-14498] - 片状的org.apache.kafka.tools.MetadataQuorumCommandTest
子任务
[KAFKA-13036] - 在RocksDBMetricsRecorderTest中用Mockito替换EasyMock和PowerMock。
[KAFKA-13060] - 在WorkerGroupMemberTest.java中用Mockito替换EasyMock和PowerMock。
[KAFKA-13133] - 在AbstractHerderTest中用Mockito替换EasyMock和PowerMock。
[KAFKA-13158] - 在ConnectClusterStateImplTest中用Mockito替换EasyMock和PowerMock。
[KAFKA-13982] - 用Mockito替换EasyMock和PowerMock的WorkerConfigTransformerTest。
[KAFKA-14058] - 在ExactlyOnceWorkerSourceTaskTest中用Mockito替换EasyMock和PowerMock。
[KAFKA-14134] - 在WorkerConnectorTest中用Mockito替换EasyMock。
[KAFKA-14307] - KRaft控制器基于时间的快照
[KAFKA-14352] - 为Kafka消费者支持机架感知的分区分配
[KAFKA-14393] - 改变集群元数据分区基于默认大小的保留。
[KAFKA-14427] - 增加对ZK迁移多操作事务的支持
[KAFKA-14428] - 为KIP-866添加记录、RPC和配置
[KAFKA-14448] - ZK broker在迁移期间向KRaft注册
[KAFKA-14611] - ZK broker在注册期间不应发送epoch
相关链接
英文原文:https://downloads.apache.org/kafka/3.4.0/RELEASE_NOTES.html