发布说明 - Kafka - 2.2.0版本

半兽人 发表于: 2019-04-25   最后更新时间: 2020-08-17 19:16:50  
{{totalSubscript}} 订阅, 3,435 游览

2019年3月22号,发布Kafka 2.2.0。

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

有关升级的注意事项:在升级你的集群之前,请仔细阅读此版本的升级文档。升级有关不兼容性和破坏性的变更,性能变化以及可能影响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替换EasyMockPowerMock
[KAFKA-7612] - 修复javac警告并启用警告作为错误
[KAFKA-7651] - 片状测试SaslSslAdminClientIntegrationTest.testMinimumRequestTimeouts
[KAFKA-7824] - 要求member.id用于初始加入组请求
更新于 2020-08-17
在线,4小时前登录

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