发布通知 - Kafka - 1.1.0版本

以下是Kafka 1.1.0版本中解决的JIRA问题的摘要。有关该版本的完整文档,入门指南以及有关该项目的信息,请参阅Kafka官方网站。

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

新功能

[KAFKA-1689] - 将日志目录自动迁移到新位置
[KAFKA-5142] - KIP-145 -Kafka Connect中公开消息标题
[KAFKA-6170] -StreamsKafkaClientSupplier中添加AdminClient
[KAFKA-6240] - 支持频繁更新的broker配置的动态更新

改善 (Improvement)

[KAFKA-3073] - Kafka Connect应支持topic的正则表达式
[KAFKA-3625] -kafka-streams测试夹具移动到已发布的包中
[KAFKA-4029] - Connect REST APISSL支持
[KAFKA-4115] - 将分布式Connect的默认堆设置从256M增加到1G
[KAFKA-4218] -ValueTransformer中启用对密钥的访问
[KAFKA-4499] - 添加“getAllKeysAPI以查询窗口化的KTable仓库
[KAFKA-4706] - 统一StreamsKafkaClient实例
[KAFKA-5228] - 重新访问Streams DSL JavaDocs
[KAFKA-5520] - 为流应用程序扩展消费者组重置偏移工具
[KAFKA-5526] - KIP-175: ConsumerGroupCommand不再显示尚未提交偏移的使用者组的输出
[KAFKA-5565] - 添加broker度量标准,指定正在进行的消费者组重新平衡的数量
[KAFKA-5631] - 使用Jackson串行化为JSON
[KAFKA-5764] - KafkaShortnamer应该允许不区分大小写的匹配
[KAFKA-5772] - 改进Util[KAFKA-5895] - 构建需要Gradle 3.0+
[KAFKA-5925] - 将消息删除操作添加到新的Admin Client API
[KAFKA-5987] - 文档生成中使用的Kafka度量标准模板应保持标记的顺序
[KAFKA-6086] -Kafka Streams无法生成时提供自定义错误处理
[KAFKA-6150] - Make Repartition Topics Transient
[KAFKA-6168] - 对于大型模式,Connect Schema比较很慢
[KAFKA-6180] -NonNull配置添加Validator并删除列表上的冗余空值检查
[KAFKA-6205] - 在初始化拓扑之前恢复状态存储
[KAFKA-6218] - 优化if语句中的条件以减少比较次数
[KAFKA-6233] - 删除了不必要的空检查
[KAFKA-6254] - 引入增量FetchRequests以提高分区可伸缩性
[KAFKA-6258] - SSLTransportLayer应该继续从套接字读取,直到缓冲区已满或套接字没有更多数据
[KAFKA-6321] - ConsumerGroupCommand应使用新的消费者来查询日志结束偏移量。
[KAFKA-6324] -LogSegment.delete更改为deleteIfExists并加强日志恢复
[KAFKA-6382] - 公开ProducerConfigConsumerConfig的构造函数
[KAFKA-6412] - 改进CachingKeyValueStore方法中的同步
[KAFKA-6430] - 改善Kafka GZip压缩性能
[KAFKA-6456] - 改进SourceTask#poll()的JavaDoc以阻止无限期阻塞
[KAFKA-6499] - 避免创建没有状态存储的虚拟检查点文件
[KAFKA-6519] - 将此日志级别从ERROR更改为WARN,而不是此分区异常的领导者
[KAFKA-6634] - 延迟启动生产者的txn,直到初始化拓扑与EOS开启

Bug

[KAFKA-1044] - 更改log4j为slf4j
[KAFKA-2394] - 默认情况下,在log4j.properties中使用RollingFileAppender
[KAFKA-2729] - 缓存的zkVersion不等于zookeeper中的,broker没有恢复。
[KAFKA-2903] - 当start不为零时,FileRecords.read不处理size > sizeInBytes
[KAFKA-3083] - 控制器中的软故障可能会使topic分区处于不一致状态
[KAFKA-3978] - 在broker启动时无法截断为负offset(-1)异常
[KAFKA-4084] - 自动化leader重新平衡导致具有太多分区的群集的复制停机时间
[KAFKA-4247] - kafka-run-class有可能在classpath中添加一个前导冒号
[KAFKA-4263] - 在jenkins构建中,QueryableStateIntegrationTest.concurrentAccess偶尔会失败
[KAFKA-4335] - FileStreamSource连接器不适用于大文件(~1GB)
[KAFKA-4750] - KeyValueIterator返回null值
[KAFKA-4767] - KafkaProducer没有正确加入其IO线程
[KAFKA-4827] - Kafka connect: 连接器名称中的特殊字符出错
[KAFKA-4857] - 在Kafka Streams中将StreamsKafkaClient替换为AdminClient
[KAFKA-4897] - LogCleaner#cleanSegments不应忽略删除文件的失败
[KAFKA-4930] - Connect Rest API允许使用空名称创建连接器 - KIP-212
[KAFKA-4991] - KerberosLogin#loged可能应该同步
[KAFKA-5163] - 支持日志目录之间的副本移动(KIP-113)
[KAFKA-5212] - Consumer ListOffsets请求可能会使组心跳加速
[KAFKA-5550] - 如果验证失败,Struct.put()应包括字段名称
[KAFKA-5563] - 澄清配置中连接器名称的处理
[KAFKA-5759] - 允许用户将相对路径指定为日志目录
[KAFKA-5848] - KafkaConsumer应该在订阅/分配时验证主题/TopicPartitions。
[KAFKA-5877] - 如果重新分配数据发生更改,控制器应仅更新重新分配znode
[KAFKA-5890] - records.lag应该使用主题和分区的标记,而不是使用度量标准名称。
[KAFKA-5936] - KafkaProducer不应该在close()中使用KafkaException包装InterruptedException
[KAFKA-5953] - 对于JDBC驱动程序,可能会破坏连接类加载器隔离
[KAFKA-5996] - JsonConverter生成“Mismatching schema”DataException
[KAFKA-6012] - TransactionsBounceTest期间markErrorMeter中的NoSuchElementException
[KAFKA-6018] - 使KafkaFuture.Function与java 8 lambda兼容
[KAFKA-6023] - ThreadCache#sizeBytes()应检查溢出
[KAFKA-6026] - 如果遇到狭窄的竞争条件,KafkaFuture超时将无法触发
[KAFKA-6046] - DeleteRecordsRequest给非领导者
[KAFKA-6051] - ReplicaFetcherThread应在关闭时关闭ReplicaFetcherBlockingSend
[KAFKA-6053] - 在升级系统测试中创建ProducerRecord时出现NoSuchMethodError
[KAFKA-6055] - 由于JVM配置中的拼写错误,Windows上的运行工具失败
[KAFKA-6069] - Streams指标标记错误
[KAFKA-6070] - ducker-ak: 添加ipaddress和enum34依赖到docker image
[KAFKA-6075] - 在Windows上发生不正常关机后,Kafka无法恢复
[KAFKA-6087] - 扫描plugin.path需要支持相对的符号链接
[KAFKA-6101] - 重新连接到broker不会以指数方式退回
[KAFKA-6115] - TaskManager应该是类型感知的
[KAFKA-6116] - 由于leader选举期间过度日志导致的主要性能问题
[KAFKA-6120] - RecordCollectorImpl不应重试发送
[KAFKA-6121] - 还原和全局消费者不应使用auto.offset.reset
[KAFKA-6122] - Global Consumer应该处理TimeoutException
[KAFKA-6126] - 通过不检查创建的topic是否可用来减少重新平衡的时间
[KAFKA-6130] - VerifiableConsumer用--max-messages时候不能退出
[KAFKA-6131] - 如果txns同时完成,则有时会丢弃事务标记
[KAFKA-6138] - 简化StreamsBuilder#addGlobalStore
[KAFKA-6156] - JmxReporter无法处理Windows样式目录路径
[KAFKA-6158] - 如果CONSUMER-ID> 50个字符,则连接CONSUMER-ID和HOST值
[KAFKA-6164] - ClientQuotaManager线程在遇到加载日志错误时阻止关闭
[KAFKA-6166] - Streams配置需要consumer和producer,为了读取
[KAFKA-6167] - Steran目录上的时间戳包含一个冒号,这是一个非法字符
[KAFKA-6174] - 在Options类中添加方法以保持与0.11的二进制兼容性
[KAFKA-6179] - RecordQueue.clear()不会清除MinTimestampTracker的维护列表
[KAFKA-6185] - 在向下转换的情况下,选择器内存泄露,多半是OOM。
[KAFKA-6190] - 使用事务性消息时,GlobalKTable永远不会完成恢复
[KAFKA-6194] - 删除段时服务器崩溃
[KAFKA-6210] - 如果在1.0.0用inter.broker.protocol.version或log.message.format.version会报IllegalArgumentException。
[KAFKA-6214] - 使用内存状态存储的备用副本会导致Streams崩溃
[KAFKA-6238] - 将滚动升级应用于1.0.0时协议版本的问题
[KAFKA-6247] - 修复系统测试依赖性问题
[KAFKA-6250] - Kafka Connect需要获得创建内部主题的权限,即使它们存在
[KAFKA-6252] - 名为“XX”的指标已存在,无法注册另一个指标。
[KAFKA-6253] - 优化sink连接器topic的正则表达式验证
[KAFKA-6256] - Flaky Unit测试:KStreamKTableJoinIntegrationTest.shouldCountClicksPerRegionWithNonZeroByteCache
[KAFKA-6259] - 使KafkaStreams.cleanup()可以清理全局状态目录
[KAFKA-6260] - AbstractCoordinator没有明确处理NULL异常
[KAFKA-6261] - 如果acks=0,则请求日志记录抛出异常
[KAFKA-6265] - GlobalKTable缺少#queryableStoreName()
[KAFKA-6269] - 重新平衡后KTable状态恢复失败
[KAFKA-6277] - 为load插件的类加载器提供loadClass线程安全性
[KAFKA-6284] - 系统测试失败: ConnectRestApiTest
[KAFKA-6288] - 破坏的符号链接会中断扫描插件路径
[KAFKA-6289] - NetworkClient不应该从poll返回内部失败的api版本响应
[KAFKA-6296] - NetworkClientTest.testConnectionDelayDisconnected中的瞬态故障
[KAFKA-6298] - 日志消息上的行号不正确
[KAFKA-6302] - 删除主题后无法重新创建主题
[KAFKA-6307] - 在从JmxReporter返回之前应删除mBeanName#removeAttribute()
[KAFKA-6313] - Kafka Core应具有SLF4J API依赖
[KAFKA-6318] - StreamsResetter应该在出错时返回非零返回码
[KAFKA-6319] - kafka-acls回归 逗号字符(也可能是其他字符)
[KAFKA-6322] - 删除主题日志时出错,所有日志目录都失败。
[KAFKA-6323] - 使用WALL_CLOCK_TIME立即触发punctuate
[KAFKA-6328] - 在InternalTopologyBuilder#makeNodeGroups中排除属于全局存储的节点组
[KAFKA-6331] - kafka.api.AdminClientIntegrationTest.testLogStartOffsetCheckpointkafka.api.AdminClientIntegrationTest.testAlterReplicaLogDirs中的瞬时故障
[KAFKA-6345] - NetworkClient.inFlightRequestCount()不是线程安全的,在读取传感器时导致ConcurrentModificationExceptions
[KAFKA-6349] - stream状态恢复期间报ConcurrentModificationException
[KAFKA-6354] - 关于KIP-182更新KStream JavaDoc
[KAFKA-6360] - 关闭存储时未删除的RocksDB段导致重新初始化失败
[KAFKA-6362] - 自动提交不起作用,因为coordinatorUnknown()始终为true。
[KAFKA-6367] - 修复StateRestoreListener以使用正确的批处理结束偏移
[KAFKA-6378] - 当KeyValueMapper返回null时,KStream-GlobalKTable leftJoin上的NullPointerException
[KAFKA-6383] - 在StreamThread.start之前调用时,StreamThread.shutdown不会完全清理
[KAFKA-6390] - 将ZooKeeper更新为3.4.11,Gradle和其他次要更新
[KAFKA-6391] - 确保copartitioning的输出不用于群集元数据,从而导致没有任务处理的分区
[KAFKA-6397] - 消费者不应该阻止设置不可用分区的初始位置
[KAFKA-6398] - 非聚合KTable生成运算符不能正确getter构造值
[KAFKA-6418] - AdminClient应该更好地处理空或空topic名称
[KAFKA-6422] - 在镜像制造商中启用跟踪级别日志时,它将抛出空指针异常,镜像制造商将关闭
[KAFKA-6451] - 简化KStreamReduce
[KAFKA-6464] - 由于填充假设不正确,JRE 1.7下的Base64URL编码被破坏
[KAFKA-6487] - ChangeLoggingKeyValueBytesStore.all()返回null
[KAFKA-6489] - Fetcher.retrieveOffsetsByTimes()应将所有topic添加到元数据刷新topic集。
[KAFKA-6492] - LogSemgent.truncateTo() 应始终调整索引文件的大小
[KAFKA-6503] - Connect: 插件扫描非常慢
[KAFKA-6504] - Connect: 一些每任务指标不起作用
[KAFKA-6511] - Connect: 头解析器错误地解析数组
[KAFKA-6512] - Java Producer: 启用压缩时内存使用率过高
[KAFKA-6513] - 新的Connect头支持没有正确定义`converter.type`属性
[KAFKA-6517] - ZooKeeperClient在等待响应时保持锁定,阻止关闭
[KAFKA-6528] - DynamicBrokerReconfigurationTest.testThreadPoolResize中的瞬时故障
[KAFKA-6529] - 突然客户端断开连接后,代理会泄漏内存和文件描述符
[KAFKA-6532] - 委托令牌内部不应影响公共接口
[KAFKA-6536] - Streams quickstart pom.xml缺少一堆插件的版本
[KAFKA-6549] - 处理控制器事件时出现死锁
[KAFKA-6554] - 不拒绝具有不一致状态的生产请求
[KAFKA-6568] - LogCleanerManager.doneDeleting()应在删除分区之前检查分区状态
[KAFKA-6573] - KafkaController.brokerInfo未更新动态更新
[KAFKA-6577] - 连接独立SASL文件源和接收器测试失败,没有说明
[KAFKA-6578] - 连接分布式和独立worker的'main()'方法应该捕获并记录所有异常
[KAFKA-6590] - 消费者字节提取和消息提取的度量标准未正确聚合
[KAFKA-6593] - 心跳线程中的协调器断开连接可能导致commitSync无限期阻塞
[KAFKA-6606] - 消费者自动提交退避行为的回归
[KAFKA-6622] - GroupMetadataManager.loadGroupsAndOffsets不需要解压缩消息批次
[KAFKA-6624] - l日志段删除可能导致磁盘未正确标记为脱机
[KAFKA-6653] - 存在锁定争用时,可能无法完成延迟操作
[KAFKA-6663] - GlobalKTable的表达式不正确
[KAFKA-6676] - 系统测试不能使用SCRAM正确处理ZK chroot
[KAFKA-6680] - 修复DynamicBrokerConfig中的配置初始化
[KAFKA-6683] - ReplicaFetcher崩溃“尝试完成未启动的事务”

Test

[KAFKA-6096] - 添加并发测试以运行group/交易管理器中的所有路径
[KAFKA-6104] - 为ClusterConnectionStates添加单元测试
[KAFKA-6193] - 仅在重新分配完成后删除reassign_partitions znode
[KAFKA-6215] - KafkaStreamsTest在trunk中失败
[KAFKA-6300] - SelectorTest可能会因ConcurrentModificationException而失败

子任务

[KAFKA-4541] - 添加创建委派令牌的功能
[KAFKA-4542] - 根据委托令牌添加身份验证。
[KAFKA-4543] - 添加续订/过期委派令牌的功能。
[KAFKA-5083] - 总是把最后幸存的ISR成员留在ZK
[KAFKA-5473] - 无法建立新会话时,正确处理ZK会话到期
[KAFKA-5541] - 如果暂停/关闭任务失败,则streams不应重新抛出
[KAFKA-5642] - 在Controller中使用异步的ZookeeperClient
[KAFKA-5645] - 在SimpleAclAuthorizer中使用异步的ZookeeperClient
[KAFKA-5646] - 在DynamicConfigManager中使用异步的ZookeeperClient
[KAFKA-5647] - 对admin操作使用异步ZookeeperClient
[KAFKA-5811] - Trogdor应该处理注入磁盘故障
[KAFKA-5849] - 添加进程停止故障,往返工作负载,分区生产-消费测试
[KAFKA-5894] - 将max inflight请求的概念添加到异步ZookeeperClient
[KAFKA-6060] - 向Trogdor添加工作负载生成功能
[KAFKA-6065] - 添加ZooKeeperRequestLatencyMsKafkaZkClient
[KAFKA-6071] - 在LogManager使用ZookeeperClient
[KAFKA-6072] - 在GroupCoordinatorTransactionCoordinator中使用ZookeeperClient
[KAFKA-6073] - 在KafkaApis中使用ZookeeperClient
[KAFKA-6074] - 在ReplicaManagerPartition中使用ZookeeperClient
[KAFKA-6111] - 测试KafkaZkClient
[KAFKA-6118] - 在kafka.api.SaslScramSslEndToEndAuthorizationTest.testTwoConsumersWithDifferentSaslCredentials瞬时故障
[KAFKA-6146] - 最小化排队PreferredReplicaLeaderElection事件的触发器数量
[KAFKA-6241] - 启用动态重新配置SSL密钥库
[KAFKA-6242] - 启用调整各种broker线程池的大小
[KAFKA-6243] - 启用度量标准报告者及其自定义配置的重新配置
[KAFKA-6244] - 启用日志清理程序的动态重新配置
[KAFKA-6245] - 启用broker使用的默认topic配置的重新配置
[KAFKA-6246] - 启用监听器和安全配置的重新配置
[KAFKA-6255] - 添加ProduceBenchTrogdor
[KAFKA-6320] - 将KafkaHealthCheck中的ZK指标移动到ZookeeperClient
[KAFKA-6452] - 添加委托令牌认证机制的文档
[KAFKA-6476] - 动态的配置更新文档
[KAFKA-6494] - 使用新的AdminClient扩展ConfigCommand以更新broker配置
[KAFKA-6501] - 在提取线程池调整大小后添加测试以验证markPartitionsForTruncation





发表于: 5月前   最后更新时间: 3月前   游览量:1773
上一条: 发布说明 - Kafka - 1.0.1版本
下一条: 发布通知 - Kafka - 2.0.1版本

评论…


  • 我在从0.10.1升级到1.1broker的过程中,发现topic分区下面的多了两个日志文件,一个是*.snapshot后缀格式文件,一个是leader-epoch-checkpoint文件,前者那个shapshot后缀文件还没弄懂什么作用?我在kafka官网文档中没找到哪里介绍到这个变化啊,请问大佬,你是从哪里获取到这些详细版本更新信息的?
  • 评论…
    • in this conversation