发布通知 - Kafka - 2.0.0版本

半兽人 发表于: 2018-08-23   最后更新时间: 2020-08-17 19:18:21  
{{totalSubscript}} 订阅, 5,299 游览

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

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

新功能

[KAFKA-6576] - 可配置配额管理(KIP-257)
[KAFKA-6841] - 添加对前缀ACL的支持
[KAFKA-6886] - Kafka Connect配置的Externalize Secrets
[KAFKA-6935] - KIP-295添加Streams配置以进行可选优化

改善

[KAFKA-1894] - 避免消费者长时间或无限制地阻塞
[KAFKA-2061] - 提供 a--version标志来打印kafka版本
[KAFKA-3379] - 更新依靠旧生产者使用新生产者的工具。
[KAFKA-3473] - KIP-237: 更多控制器健康指标
[KAFKA-3591] - 如果提供的查询不匹配任何值,JmxTool应退出
[KAFKA-3806] - 调整log.retention.hours和offsets.retention.minutes的默认值
[KAFKA-3834] - 消费者不应该阻止coordinator的发现
[KAFKA-4292] - KIP-86: 可配置的SASL回调处理程序
[KAFKA-4914] - 分区重新分配工具应该在ZooKeeper中持久化状态之前检查类型
[KAFKA-4936] - 允许动态路由输出记录
[KAFKA-5058] - 将传感器添加到KafkaStreams以跟踪由于具有空键而丢弃的记录
[KAFKA-5327] - 控制台消费者应该只poll最多的消息
[KAFKA-5370] - 将旧消费者的使用替换为新消费者
[KAFKA-5523] - ReplayLogProducer不使用新的Kafka使用者
[KAFKA-5529] - ConsoleProducer不推荐使用的BaseProducer
[KAFKA-5674] - max.connections.per.ip最小值为零以允许IP地址阻塞
[KAFKA-5907] - 支持Java 9中的aggregatedJavadoc
[KAFKA-5965] - 从Streams Resetter Tool中删除不推荐使用的AdminClient
[KAFKA-5987] - 文档生成中使用的Kafka度量标准模板应保持标记的顺序
[KAFKA-6024] - 考虑在调用acquireAndEnsureOpen()之前移动在KafkaConsumer中的验证
[KAFKA-6028] - 改善配额节流通信。
[KAFKA-6057] - 用户在偏移重置工具中忘记了`--execute`
[KAFKA-6058] - KIP-222: 将“描述使用者组”和“列出使用者组”添加到KafkaAdminClient
[KAFKA-6106] - 推迟线程内任务的正常处理,直到完成所有任务的恢复
[KAFKA-6184] - 报告消费者偏移量与日志的起始偏移量之间的滞后量度量
[KAFKA-6376] - 改进跳过记录的Streams指标
[KAFKA-6424] - QueryableStateIntegrationTest#queryOnRebalance应该接受原始文本
[KAFKA-6454] - 允许处理器API中的时间戳操作
[KAFKA-6473] - 将MockProcessorContext添加到public test-utils
[KAFKA-6481] - 提高ControllerChannelManager.addUpdateMetadataRequestForBrokers函数的性能
[KAFKA-6486] - TimeWindows导致对窗口化聚合函数的无序调用
[KAFKA-6514] - 添加API版本作为RequestsPerSec指标的标记
[KAFKA-6515] - 将toString()方法添加到kafka connect Field类
[KAFKA-6526] - 更新控制器以处理对unclean.leader.election.enable的更改
[KAFKA-6535] - 将Streams重新分区主题的默认保留时间设置为Long.MAX_VALUE
[KAFKA-6538] - 为ByteStore异常提供更多上下文信息
[KAFKA-6546] - 为缺少的侦听器添加ENDPOINT_NOT_FOUND_ON_LEADER错误代码
[KAFKA-6560] - 对于窗口化聚合运算符,使用单点查询而不是范围查询
[KAFKA-6562] - KIP-255: 通过SASL/OAUTHBEARER进行OAuth身份验证
[KAFKA-6608] - 添加TimeoutException到KafkaConsumer#position()
[KAFKA-6611] - 使用JMXTool在系统测试中重写简单基准
[KAFKA-6615] - 为DumpLogSegments添加脚本
[KAFKA-6628] - RocksDBSegmentedBytesStoreTest不包括时间窗口serdes
[KAFKA-6630] - 加速控制器上的TopicDeletionStopReplicaResponseReceived事件的处理
[KAFKA-6640] - 提高KafkaAdminClient.describeTopics()的效率
[KAFKA-6657] - 为不同的使用者添加StreamsConfig前缀
[KAFKA-6659] - 优化错误信息 - 如果状态存储没有找到
[KAFKA-6670] - 为Kafka Streams实现Scala包装器库
[KAFKA-6673] - Segment和Stamped实现可比较,但不要覆盖equals。
[KAFKA-6677] - 删除EOS生产者配置max.in.flight.request.per.connection = 1
[KAFKA-6685] - 连接反序列化日志消息应区分键和值
[KAFKA-6688] - Trogdor协调员应该跟踪任务状态
[KAFKA-6726] - KIP-277 - CreateTopics API的Fine Grained ACL
[KAFKA-6727] - org.apache.kafka.clients.admin.Config已经破坏了equals和hashCode方法。
[KAFKA-6730] - 简化状态存储恢复
[KAFKA-6738] - Kafka Connect处理不良数据
[KAFKA-6750] - 为AuthenticationContext添加监听名称
[KAFKA-6760] - 响应未在控制器中正确记录
[KAFKA-6772] - 在允许请求之前,Broker应该从ZK加载凭据
[KAFKA-6776] - 连接Rest Extension插件
[KAFKA-6795] - 为ReplicaAlterLogDirsThread添加单元测试
[KAFKA-6802] - 在topic未知且分配被跳过时优化日志记录
[KAFKA-6813] - 从Streams中的KIP-120和KIP-182中删除已弃用的API
[KAFKA-6849] - 添加transformValues()方法到KTable
[KAFKA-6850] - KIP-244: 为 Kafka Streams Processor API增加Record Header支持
[KAFKA-6896] - 在KafkaStreams.java中添加生产度量暴露
[KAFKA-6905] - Processor对象可以重用
[KAFKA-6913] - 将原始数字转换器添加到Connect
[KAFKA-6930] - 更新 KafkaZkClient debug日志
[KAFKA-6938] - 添加用于在Kafka Streams Processor API上访问Headers的文档
[KAFKA-6955] - 在DeleteRecordsCommand中使用Java AdminClient
[KAFKA-6957] - 将getter添加到AbstractStream类,以使internalTopologyBuilder可以在包外部访问
[KAFKA-6979] - 将max.block.ms添加到消费者以获取默认超时行为
[KAFKA-6997] - Kafka运行类不能排除测试源jar
[KAFKA-7000] - KafkaConsumer.position应该等待赋值元数据
[KAFKA-7009] - 在系统测试中警告级别的reflections.org静音记录器
[KAFKA-7050] - 将消费者请求超时减少到30秒
[KAFKA-7066] - 在序列化异常的情况下使Streams运行错误对用户友好
[KAFKA-7091] - AdminClient应该处理FindCoordinatorResponse错误
[KAFKA-7111] - 检查NetworkClient日志级别

Bug

[KAFKA-3177] - 在不存在的分区上调用position()时,Kafka使用者可以挂起。
[KAFKA-3417] - 配置属性中的无效字符未经过验证?
[KAFKA-3665] - 默认ssl.endpoint.identification.algorithm应为https
[KAFKA-3899] - 如果提供了错误的凭据,Consumer.poll()会陷入循环
[KAFKA-4041] - kafka无法重新连接到ELB后面的zookeeper
[KAFKA-4831] - 提取WindowedSerde到公共api
[KAFKA-4879] - 删除主题时,KafkaConsumer.position可能会永久挂起
[KAFKA-4883] - 无效的客户端sasl.jaas.config触发NullPointerException
[KAFKA-5253] - TopologyTestDriver必须处理使用模式创建的流
[KAFKA-5540] - 弃用并删除内部转换器配置
[KAFKA-5588] - 从tools命令中移除已弃用的new-consumer选项
[KAFKA-5624] - 不安全使用过期的传感器
[KAFKA-5697] - StreamThread.shutdown()需要中断流线程来打破循环
[KAFKA-5807] - 检查Connector.config()和Transformation.config())返回有效的ConfigDef
[KAFKA-5919] - 为使用它的工具添加“version”字段的检查
[KAFKA-5974] - 移除为使用的ProcessorContext
[KAFKA-6052] - Windows: 当isolation.level=read_committed时消费者不能poll
[KAFKA-6054] - ERROR "SubscriptionInfo" - 从0.10.0.0升级到0.10.2.1时无法解码订阅数据:version=2
[KAFKA-6238] - 将滚动升级应用于1.0.0时协议版本的问题
[KAFKA-6253] - 改进sink连接器主题正则表达式验证
[KAFKA-6264] - 日志清理程序线程可能会在包含其偏移量太大的消息的旧版段上挂掉
[KAFKA-6288] - 中断符号链接会中断扫描插件路径
[KAFKA-6292] - KafkaConsumer遇到由FileLogInputStream中的整数溢出引起的主题分区数据的Unknown错误
[KAFKA-6299] - 修复元数据更改时的AdminClient错误处理
[KAFKA-6351] - libs目录有重复的javassist jar
[KAFKA-6361] - 快速leader故障转移可能导致leader和follower之间的日志分歧
[KAFKA-6378] - 当KeyValueMapper返回null时,KStream-GlobalKTable leftJoin上的NullPointerException
[KAFKA-6386] - 使用StreamsConfig参数,弃用KafkaStreams构造函数
[KAFKA-6390] - 将ZooKeeper更新为3.4.12,Gradle和其他次要更新
[KAFKA-6394] - 预防advertised listener的配置错误
[KAFKA-6427] - 来自KafkaConsumer.position的异常类型不一致
[KAFKA-6445] - 删除2.0中已弃用的指标
[KAFKA-6446] - 当bootstrap服务器关闭时,KafkaProducer的transactionId持续等待
[KAFKA-6503] - Connect: 插件扫描非常慢
[KAFKA-6513] - 新的Connect头不支持正确的`converter.type`属性
[KAFKA-6530] - 当magicV2滚动日志段时,使用实际的第一个消息offset。
[KAFKA-6534] - 当存在任务迁移时,Consumer.poll可能无法及时触发重新平衡
[KAFKA-6552] - 鈥渆ntity_type鈥� 不完全是kafka-configs.sh的描述
[KAFKA-6566] - 在poll()中引发异常后未调用SourceTask#stop()
[KAFKA-6577] - 连接独立SASL文件源和sink 测试失败,而没有说明
[KAFKA-6581] - 即使其中一个分区不可用,ConsumerGroupCommand也会挂起
[KAFKA-6637] - 如果设置主题配置 segment.ms=0 Kafka broker将无法启动
[KAFKA-6650] - 控制器应该能够处理部分删除的topic
[KAFKA-6656] - 当kafka-configs.sh失败,使用非零的状态编码
[KAFKA-6658] - 修复RoundTripWorkload并使k/v生成可配置
[KAFKA-6672] - ConfigCommand无法改变配置
[KAFKA-6697] - 如果日志目录无效,JBOD配置的broker不应该关闭
[KAFKA-6704] - 从SegementIterator检查hasNext可能会抛出InvalidStateStoreException
[KAFKA-6709] - 由于OOM,broker无法处理请求
[KAFKA-6710] - 关闭期间Streams集成测试会挂起
[KAFKA-6711] - GlobalStateManagerImpl不应在检查点文件中写入内存存储的偏移量
[KAFKA-6724] - ConsumerPerformance在每次启动时重置偏移量
[KAFKA-6728] - Kafka Connect Header空指针异常
[KAFKA-6729] - 如果可能,KTable应使用用户source主题,而不是创建changelog主题。
[KAFKA-6731] - waitOnState等待错误的状态而不是目标状态
[KAFKA-6737] - Kafka是否受到关键漏洞CVE-2018-7489的影响
[KAFKA-6739] - 对于带有header的消息,下转换失败
[KAFKA-6741] - 瞬时测试故障: SslTransportLayerTest.testNetworkThreadTimeRecorded
[KAFKA-6742] - 从GlobalKTable处理仓库时出现TopologyTestDriver错误
[KAFKA-6743] - ConsumerPerformance无法消费具有大量分区的主题上的所有消息
[KAFKA-6747] - kafka-streams尝试从状态READY到状态ABORTING_TRANSACTION的无效转换
[KAFKA-6748] - Scheduler不能从Punctuator取消
[KAFKA-6749] - 当测试中的topoloy使用EXACTLY_ONCE时,TopologyTestDriver失败
[KAFKA-6752] - Unclean leader选举度量不在生效
[KAFKA-6765] - CustomQuotaCallbackTest间接性测试故障
[KAFKA-6775] - 在SimpleBenchmark中应该调用super#init创建AbstractProcessor
[KAFKA-6778] - 对于不存在的主题,DescribeConfigs不会返回错误
[KAFKA-6782] - 消费者中断消息时,GlobalKTable GlobalStateStore永远不会完成恢复
[KAFKA-6796] - 对非副本的生产/获取请求令人惊讶的UNKNOWN_TOPIC错误
[KAFKA-6809] - 连接创建的度量标准不按预期运行
[KAFKA-6825] - DEFAULT_PRODUCTION_EXCEPTION_HANDLER_CLASS_CONFIG是私有的
[KAFKA-6826] - 在窗口仓库聚合中转发值时避免范围扫描
[KAFKA-6829] - 消费者在遇到未知主题或分区错误时应重试
[KAFKA-6834] - 当消息集的大小大于最大消息大小时,日志清理程序应该处理这种情况
[KAFKA-6844] - StreamThread和GlobalStreamThread之间的竞争条件停止
[KAFKA-6853] - ResponseMetadata错误地计算延迟(因此ZooKeeperRequestLatencyMs不正确)
[KAFKA-6855] - 由于Java版本检测错误,Kafka无法启动Java 10
[KAFKA-6857] - LeaderEpochFileCache.endOffsetFor()应该明确检查UNDEFINED_EPOCH
[KAFKA-6860] - 当reinitializeStateStores启用eos时的NPE
[KAFKA-6870] - SampledStat中的并发冲突
[KAFKA-6871] - KStreams Scala API: 不正确的Javadoc和误导性参数名称
[KAFKA-6877] - 如果失败的解析包含没有记录,则删除completedFetch。
[KAFKA-6878] - 查询未处于READY状态的全局状态存储时的NPE
[KAFKA-6879] - 会话到期后控制器死锁
[KAFKA-6894] - 将处理器与全局存储连接时改进错误消息
[KAFKA-6897] - Mirrormaker等待永久关闭产生失败的abort.on.send.failure=true
[KAFKA-6906] - 如果通过wall-clock标点符号生成数据,Kafka Streams不会提交事务
[KAFKA-6919] - Trogdor文档指向trogdor.sh的错误位置
[KAFKA-6927] - Broker在下转换期间使用大量内存
[KAFKA-6929] - ZkData - Consumers offsets Zookeeper路径不正确
[KAFKA-6936] - Streams的Scala API Wrapper使用表聚合的默认序列化程序
[KAFKA-6937] - 如果超过副本限制,则在获取期间延迟同步副本
[KAFKA-6949] - 访问未来副本的日志时alterReplicaLogDirs()应该获取分区锁
[KAFKA-6967] - TopologyTestDriver不允许预先填充具有更改日志记录的状态存储
[KAFKA-6973] - 设置无效的时间戳会导致Kafka broker重启失败
[KAFKA-6975] - AdminClient.deleteRecords()可能导致副本无法从头开始获取
[KAFKA-6981] - 缺少连接器配置(errors.deadletterqueue.topic.name)会导致Connect Clusters死亡
[KAFKA-6991] - 使用类加载器连接Rest Extension插件问题
[KAFKA-6993] - 修复`KStream/KTable`有缺陷的文档
[KAFKA-7012] - kafka1.0.1升级到1.1的性能问题
[KAFKA-7021] - Source KTable检查点不正确
[KAFKA-7023] - Kafka Streams RocksDB批量加载配置可能无法使用自定义的RocksDBConfigSetter
[KAFKA-7028] - super.users不适用于自定义的principals
[KAFKA-7029] - ReplicaVerificationTool不应使用已弃用的SimpleConsumer
[KAFKA-7031] - Kafka Connect API模块依赖于Jersey
[KAFKA-7032] - KakfaConsumerKakfaConsumer#close(long, TimeUnit)忽略了TimeUnit
[KAFKA-7039] - DelegatingClassLoader即使没有Versioned也会创建插件实例
[KAFKA-7043] - 连接隔离白名单不包括新的原始转换器(KIP-305)
[KAFKA-7047] - 连接隔离白名单不包括SimpleHeaderConverter
[KAFKA-7048] - 创建连接器时的NPE
[KAFKA-7055] - Kafka Streams Processor API允许您在没有父级的情况下添加接收器和处理器
[KAFKA-7056] - Connect的新数字转换器应该在不同的包中
[KAFKA-7058] - 对于数组类型的默认值,ConnectSchema#equals()已中断
[KAFKA-7064] - 使用最新的管理客户端描述代理配置时报"Unexpected resource type GROUP"
[KAFKA-7067] - ConnectRestApiTest失败断言
[KAFKA-7068] - ConfigTransformer不能处理null值
[KAFKA-7076] - 当使用老的消息格式时Broker启动无效。
[KAFKA-7082] - 并发createTopics调用可能会抛出NodeExistsException
[KAFKA-7104] - 由于获取响应中的日志启动偏移不一致,ReplicaFetcher线程可能会死亡
[KAFKA-7112] - 在pollRequests()之后,StreamThread不再检查状态
[KAFKA-7136] - 处理指标更改时,PushHttpMetricsReporter可能会死锁
[KAFKA-7168] - SSL握手期间的broker关闭可以作为握手失败来处理
[KAFKA-7182] - SASL/OAUTHBEARER客户端响应缺少%x01分隔符
[KAFKA-7185] - getMatchingAcls为空资源名称抛出StringIndexOutOfBoundsException
[KAFKA-7193] - 由于随机选择ipv4/ipv6,ZooKeeper客户端因localhost而超时
[KAFKA-7194] - 重新平衡后反序列化分配时出错

任务

[KAFKA-2983] - 删除旧的Scala使用者以及所有相关的代码,测试和工具
[KAFKA-4423] - 删除对Java 7的支持
[KAFKA-5660] - 不要在运行时抛出TopologyBuilderException
[KAFKA-5677] - 删除不推荐使用的punctuate方法
[KAFKA-6769] - 升级jetty库版本
[KAFKA-6800] - 更新SASL/PLAINSCRAM的文档以使用回调
[KAFKA-6805] - 允许在启动broker之前在ZooKeeper中动态配置broker
[KAFKA-6810] - 启用SSL信任库的动态重新配置
[KAFKA-6854] - Log清理程序失败,并在清理期间删除了事务标记
[KAFKA-6911] - 检查密钥库/信任库动态更新的错误
[KAFKA-6912] - 添加自定义主体类型的认证测试
[KAFKA-6916] - AdminClient不会刷新broker失败的元数据
[KAFKA-6917] - 请求处理程序死锁尝试获取组元数据锁定
[KAFKA-6921] - 删除旧的Scala生成器以及所有相关的代码,测试和工具
[KAFKA-7001] - 在Connect到errors.tolerance中重命名errors.allowed.max属性
[KAFKA-7002] - 允许通过Connect DLQ主题的配置属性设置复副本
[KAFKA-7003] - 在写入Connect DeadLetterQueue主题的消息中添加包含错误上下文的标头

Test

[KAFKA-2951] - 附加的认证测试用例
[KAFKA-5739] - 在处理器级别重写KStreamPeekTest以避免驱动程序使用
[KAFKA-5944] - 添加单元测试以处理客户端中的身份验证失败
[KAFKA-6716] - discardChannel 应该在 MockSelector#completeSend 中发布

子任务

[KAFKA-2391] - 阻塞如position(),partitionsFor(),committed())和listTopics()之类的调用应该有一个超时
[KAFKA-2837] - FAILING TEST: kafka.api.ProducerBounceTest > testBrokerFailure
[KAFKA-3368] - 将消息/记录集协议添加到协议文档
[KAFKA-3387] - 更新GetOffsetShell工具以不依赖于旧生产者。
[KAFKA-4641] - 改善StreamsThread的测试覆盖率
[KAFKA-4651] - 提高Store的测试覆盖率
[KAFKA-6447] - 将委派token操作添加到KafkaAdminClient
[KAFKA-7005] - 删除重复的Java Resource类。
[KAFKA-7006] - 删除重复的Scala ResourceNameType类
[KAFKA-7007] - 将JSON用于/kafka-acl-extended-changes路径
[KAFKA-7010] - 将ResourceNameType.ANY重命名为MATCH
[KAFKA-7011] - 调查是否可以从Java Resource类中删除ResourceNameType字段。
[KAFKA-7030] - 添加配置以禁用向下转换
更新于 2020-08-17

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