以下是2.2.0版本中解决JIRA问题的摘要,有关该版本的完整文档,入门指南以及关于该项目的信息,请参考Kafka官方文档,或kafka中文教程(orchome.com)。
有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响Kakfa生产的任何其他变化。
改进
[KAFKA-4217] - KStream.transform相当于flatMap[KAFKA-4453] - 添加请求优先级[KAFKA-4850] - RocksDb无法使用Bloom Filters[KAFKA-5692] - 重构PreferredReplicaLeaderElectionCommand以使用AdminClient[KAFKA-5994] - 提高broker用户ACL错误配置的透明度[KAFKA-6431] - 在Purgatory中锁定争用[KAFKA-6567] - KStreamWindowReduce可以被KStreamWindowAggregate取代[KAFKA-6774] - 改进使用者中的默认groupId行为[KAFKA-6928] - StreamsPartitionAssignor在InternalTopicManager中进行双重重试[KAFKA-7024] - 应在打开DB之前创建Rocksdb状态目录[KAFKA-7054] - Kafka描述命令应抛出的主题不存在异常[KAFKA-7096] - 消费者应该删除未分配的主题分区的数据[KAFKA-7131] - 更新发布脚本以生成公告电子邮件文本[KAFKA-7235] - 使用brokerZkNodeVersion可防止broker处理过时的控制器请求[KAFKA-7266] - 修复MetricsTest测试片状[KAFKA-7352] - KIP-368: 允许SASL连接定期重新进行身份验证[KAFKA-7367] - 除非需要,否则Streams不应创建状态存储目录[KAFKA-7389] - 升级spotBugs以支持Java 11[KAFKA-7391] - 向Producer和AdminClient引入close(Duration),而不是close(long,TimeUnit)[KAFKA-7402] - Kafka Streams应该在适当的时候实现AutoCloseable[KAFKA-7413] - 用网站中的fllower替换slave术语[KAFKA-7418] - 为所有可用的Kafka CLI命令添加'--help'选项(KIP-374)[KAFKA-7420] - 对于常规任务,全球商店应该被保密为只读[KAFKA-7433] - 在TopicCommand中引入broker选项以使用AdminClient[KAFKA-7446] - 更好的错误消息来解释TimeWindow的上限[KAFKA-7461] - 连接值转换器应具有逻辑类型的覆盖范围[KAFKA-7478] - 减少OAuthBearerLoginModule详细程度[KAFKA-7510] - KStreams RecordCollectorImpl在出错时将数据泄漏到日志中[KAFKA-7524] - 推荐使用Scala 2.12并将其用于开发[KAFKA-7528] - 标准化Min/Avg/Max Kafka指标的默认值[KAFKA-7537] - 如果分区状态没有变化,则仅在发送给现有broker的UpdateMetadataRequest中包含实时broker[KAFKA-7567] - 清除内部元数据用法以确保一致性和可扩展性[KAFKA-7568] - 在ListOffsets响应中返回leader epoch[KAFKA-7584] - 如果将max.in.flight.request.per.connect指定为String,StreamsConfig将抛出ClassCastException[KAFKA-7610] - 检测初始JoinGroup中的消费者故障[KAFKA-7641] - 添加`consumer.group.max.size`以限制broker上的消费者元数据大小[KAFKA-7671] - KStream/GlobalKTable连接不应重置重新分区标志[KAFKA-7673] - 升级RocksDB以包含对WinEnvIO::GetSectorSize的修复[KAFKA-7687] - Print batch level information in DumpLogSegments when deep iterating[KAFKA-7719] - 提高SocketServer处理器的公平性[KAFKA-7734] - 度量标签应使用LinkedHashMap来保证顺序[KAFKA-7738] - 跟踪客户端元数据中的分区领导者epochs[KAFKA-7758] - When Naming a Repartition Topic with Aggregations Reuse Repartition Graph Node for Multiple Operations[KAFKA-7762] - KafkaConsumer在javadocs中使用旧API[KAFKA-7798] - 从KafkaStreams threadMetadata暴露嵌入式客户端上下文[KAFKA-7804] - 更新KIP-377的文档[KAFKA-7829] - Javadoc应该显示Kafka 1.1.0或更高版本中支持AdminClient.alterReplicaLogDirs()[KAFKA-7834] - 在系统测试服务中扩展收集的日志以包括heap dumps[KAFKA-7837] - maybeShrinkIsr可能不会立即反映OfflinePartitions[KAFKA-7838] - 改进Partition.maybeShrinkIsr()中的日志记录[KAFKA-7880] - Kafka Connect应标准化工作线程名称[KAFKA-7916] - Streams存储清理:统一包装[KAFKA-8040] - Streams需要在initTransactions中处理超时
bug
KAFKA-2334] - 防止HW在leader故障转移期间返回[KAFKA-3832] - Kafka Connect的JSON Converter从不输出空值[KAFKA-4468] - 从状态存储读取后,正确计算窗口结束时间戳[KAFKA-5117] - Kafka Connect REST端点显示密码类型值[KAFKA-5462] - 为用户添加配置以指定用于构建自定义主体名称的模板[KAFKA-5950] - AdminClient应根据返回的错误代码重试[KAFKA-6478] - 如果CLASSPATH包含空格,则kafka-run-class.bat会失败[KAFKA-6833] - KafkaProducer抛出“带记录的无效分区”异常[KAFKA-6970] - 当处理器内部时,Kafka流允许用户在状态存储上调用init()和close()[KAFKA-7037] - delete topic命令从topic名称替换'+',导致错误的topic删除[KAFKA-7051] - 当有许多分区时,提高ReplicaManager的效率[KAFKA-7110] - TimeWindowedSerde未对窗口化的变更日志key进行正确反序列化[KAFKA-7165] - 在/brokers/ids/BROKER_ID创建短暂时出错[KAFKA-7181] - 在其中一个StreamThread遇到IllegalStateException之后,Kafka Streams State陷入了重新平衡[KAFKA-7253] - 创建连接器时,worker响应的连接器类型始终为null[KAFKA-7288] - SslSelectorTest.testCloseConnectionInClosingState中的瞬时故障[KAFKA-7312] - kafka.api.AdminClientIntegrationTest.testMinimumRequestTimeouts中的瞬时故障[KAFKA-7412] - 如果Kafka broker没有运行,那么来自producer.send(ProducerRecord, Callback)的错误响应[KAFKA-7443] - 当本地检查点的起始偏移量小于changelog主题的起始偏移量时,changelog主题恢复状态存储时报OffsetOutOfRangeException[KAFKA-7449] - Kafka控制台消费者没有向反序列化程序发送topic[KAFKA-7476] - SchemaProjector未正确处理基于日期的逻辑类型[KAFKA-7518] - FutureRecordMetadata.get从超时计算的截止时间不使用timeunit[KAFKA-7532] - 错误消息中的字符串化“从关闭broker列表中删除了ArrayBuffer()。(kafka.controller.KafkaController)”[KAFKA-7536] - TopologyTestDriver无法预先填充KTable或GlobalKTable[KAFKA-7549] - 使用zstd压缩的旧ProduceRequest不会向客户端返回错误[KAFKA-7557] - 优化LogManager.truncateFullyAndStartAt()[KAFKA-7560] - PushHttpMetricsReporter不应将度量标准值转换为double[KAFKA-7561] - Console Consumer - 系统测试故障[KAFKA-7605] - Flaky测试 `SaslMultiMechanismConsumerTest.testCoordinatorFailover`[KAFKA-7616] - MockConsumer可以返回带有非空映射但没有记录的ConsumerRecords对象[KAFKA-7620] - 当TTL不为空时,ConfigProvider在KafkaConnect中被中断[KAFKA-7655] - 在某些情况下,来自Kafka Streams的元数据垃圾邮件请求,潜在的DOS[KAFKA-7657] - Kafka流应用程序中的流状态报告无效[KAFKA-7660] - 流量指标 - 内存分析[KAFKA-7672] - KafkaStream重新平衡后,本地状态未完全恢复,导致数据丢失[KAFKA-7678] - 由于java.lang.NullPointerException,无法关闭生产者[KAFKA-7692] - updateFirstUnstableOffset由于ProducerStateManager.append中的sequenceId溢出导致的NPE[KAFKA-7693] - Kafka Client中的“IllegalArgumentException:使用的负序号无效”[KAFKA-7697] - kafka.cluster.Partition中可能出现死锁[KAFKA-7702] - 带前缀的ACL不适用于单字符前缀[KAFKA-7704] - kafka.server.ReplicaFetechManager.MaxLag.Replica指标报告错误[KAFKA-7709] - 在Sender.getExpiredInflightBatches中迭代多个分区时发生ConcurrentModificationException[KAFKA-7712] - 选择器中立即连接通道处理异常[KAFKA-7741] - 通过SBT的错误依赖[KAFKA-7742] - 使用removeToken(String tokenId)API删除令牌时,不会清除DelegationTokenCache#hmacIdCache条目。[KAFKA-7752] - zookeeper-security-migration.sh不会删除kafka-acl-extended上的ACL[KAFKA-7755] - Kubernetes - Kafka客户端只解析一次DNS条目[KAFKA-7759] - 在Connect REST API中禁用WADL输出[KAFKA-7768] - Java doc链接404[KAFKA-7781] - 添加Topic retention.ms属性的验证检查[KAFKA-7786] - 由于FENCED_LEADER_EPOCH,leader epo的快速更新可能会停止分区提取[KAFKA-7789] - 在Fedora 29上运行时,SSL相关的单元测试会挂起[KAFKA-7808] - 如果未找到topic名称,则AdminClient#describeTopics不应抛出InvalidTopicException[KAFKA-7840] - cleanup.policy的文档已过期[KAFKA-7873] - KafkaBasedLog的消费者应该在开始时始终寻求开始[KAFKA-7884] - message.format.version和log.message.format.version的文档显示无效(损坏?)“有效值”[KAFKA-7890] - 如果broker的主机名变更,则会使broker的ClusterConnectionState缓存无效。[KAFKA-7895] - Ktable supress运算符为每个窗口的相同key发出多个消息[KAFKA-7897] - 使用旧消息格式版本的epoch缓存无效[KAFKA-7902] - SASL/OAUTHBEARER可能无法连接:javax.security.sasl.SaslException:无法在Subject的私有凭据(size=2)中找到OAuth Bearer令牌[KAFKA-7909] - 在待处理成员重新加入或失败后,确保及时重新平衡完成[KAFKA-7915] - SASL身份验证失败可能会将敏感数据返回给客户端[KAFKA-7920] - 在inter.broker.protocol.version更新为2.1之前,不允许使用zstd[KAFKA-7935] - 如果ReplicaManager.getLogConfig返回None,则UNSUPPORTED_COMPRESSION_TYPE[KAFKA-7938] - Flaky Test DeleteConsumerGroupsTest#testDeleteCmdWithShortInitialization[KAFKA-7940] - Flaky Test CustomQuotaCallbackTest#testCustomQuotaCallback[KAFKA-7945] - ExpiringCredentialRefreshingLogin - 超时值为负[KAFKA-7977] - Flaky Test ReassignPartitionsClusterTest#shouldOnlyThrottleMovingReplicas[KAFKA-7979] - Flaky Test PartitionTest#testDelayedFetchAfterAppendRecords[KAFKA-7980] - Flaky Test SocketServerTest#testConnectionRateLimit[KAFKA-7999] - Flaky Test ExampleConnectIntegrationTest#testProduceConsumeConnector[KAFKA-8002] - 如果将来和当前副本段文件具有不同的基本office,则可能无法完成对新日志目录的副本重新分配[KAFKA-8011] - Flaky Test RegexSourceIntegrationTest#testRegexMatchesTopicsAWhenCreated[KAFKA-8012] - 在watermark处截断时NullPointerException可能会导致副本提取程序线程崩溃[KAFKA-8018] - Flaky Test SaslSslAdminClientIntegrationTest#testLegacyAclOpsNeverAffectOrReturnPrefixed[KAFKA-8022] - Flaky Test RequestQuotaTest#testExemptRequestTime[KAFKA-8038] - Flaky Test SslTransportLayerTest#testCloseSsl[KAFKA-8039] - Flaky Test SaslAuthenticatorTest#testCannotReauthenticateAgainFasterThanOneSecond[KAFKA-8061] - 处理并发ProducerId重置并调用Sender线程关闭[KAFKA-8065] - 转发已修改的时间戳不会正确重置时间戳[KAFKA-8069] - 协调器在broker中使用旧的broker之间协议版本(<2.2)从__consumer_offsets加载它们后立即清除已提交的offset[KAFKA-8070] - 系统测试ConsumerGroupCommandTest使用SSL间歇性失败
任务
[KAFKA-7259] - 从ZkSecurityMigrator中删除已弃用的ZKUtils用法[KAFKA-7431] - 清理连接单元测试代码[KAFKA-7503] - Connect的集成测试框架[KAFKA-7551] - 重构在Worker中创建生产者和消费者[KAFKA-7617] - 文档安全
测试
[KAFKA-7799] - 修复片状测试RestServerTest.testCORSEnabled
子任务
[KAFKA-1120] - 控制器可能会错过broker状态变更[KAFKA-4544] - 为基于委托令牌的身份验证添加系统测试[KAFKA-5272] - 改进Alter Configs的验证(KIP-133)[KAFKA-5503] - 幂等生产者在获取ProducerId时忽略关闭[KAFKA-6036] - 启用逻辑实现到物理实现[KAFKA-7439] - 在客户端模块中使用Mockito替换EasyMock和PowerMock[KAFKA-7612] - 修复javac警告并启用警告作为错误[KAFKA-7651] - 片状测试SaslSslAdminClientIntegrationTest.testMinimumRequestTimeouts[KAFKA-7824] - 要求member.id用于初始加入组请求
文章转载自orchome,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




