kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结

截止2020.2.14,Kakfa最新版本为2.4.0,最早版本为0.7.0,最新版本为2.4.0。当前共有39个版本,总结的特性不包含Kafka Stream和Kafka connect。

  1. 版本介绍
kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结_第1张图片
kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结_第2张图片
kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结_第3张图片
kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结_第4张图片

主要版本新功能及改进记录如下

  1. Kafka 0.10.2.1版本
    1. 改进
  • 【KAFKA-4943】应使用Zookeeper ACL更好地保护SCHEMA信息
  1. Kafka 0.10.2.2版本
    1. 改进
  • 【KAFAK-4965】在KafkaStreams中将internal.leave.group.on.close设置为false
  • 【KAFKA-5188】改进了有关Kafka启动失败的消息,其中包含data.dirs中的非Kafka数据目录(java.lang.StringIndexOutOfBoundsException: String index out of range: -1)
  • 【KAFKA-5242】在KafkaStreams中将max_number_of_retries添加到指数补偿策略
  • 【KAFKA-7009】将系统测试的警告级别上使Reflections.org静音的记录器
  1. Kafka 0.11.0.0版本
    1. 新功能
  • 【KAFKA-3487】KIP-146 在Connect中支持每个连接器/每个任务的类加载器
  • 【KAFKA-4208】添加记录标题(例如:在KafkaRecord中支持传入Header参数)
  • 【KAFKA-3265】KIP-117新增AdminClient客户端
  • 【KAFKA-4720】添加Kstream.peek(ForeachAction)
  • 【KAFKA-4743】添加了一个重置消费者组的工具(kafka-consumer-groups.sh)
  • 【KAFKA-4881】向消费者添加内部leave.group.on.close配置
  • 【KAFKA-4923】支持精确语义,引入事务
  • 【KAFKA-5059】支持事务协调器
  • 【KAFKA-5192】窗口状态存储的范围扫描
    1. 改进(主要)
  • 【KAFKA-3878】broker支持尝试参数(reconnect.backoff.ms)支持指数形式
  • 【KAFKA-5188】改进了有关Kafka启动失败的消息,其中包含data.dirs中的非Kafka数据目录(java.lang.StringIndexOutOfBoundsException: String index out of range: -1)
  • 【KAFKA-5257】将默认的unclean.leader.election.enabled从true改为false
  1. Kafka 1.0.0版本
    1. 新功能
  • 【KAFKA-4602】KIP-72允许对传入请求占用的内存进行限制
  • 【KAFKA-5341】【KAFKA-5738】【KAFKA-5746】【KAFKA-5461】JMX监控指标完善:引入了很多集群健康度检查指标,同时对Kafka Connect监控体系做了较大程度的补足
  • 【KAFKA-5694】AdminClient API添加alterReplicaLogDirs、describeLogDirs,支持修改、查看分区数据目录信息
  • 【KAFKA-5856】AdminClient API 添加createPartitions,支持创建分区
    1. 改进(主要)
  • 【KAFKA-4501】支持Java 9:Java 9优化TLS和CRC32的性能(JEP 249以及引入了java.util.zip.CRC32C),因此在Java 9上启用Kafka安全后可以更快更快地进行数据加密以及checksum计算与校验
  • 【KAFKA-4764】优化SASL认证错误的处理:之前某些SASL认证异常没有清晰显示地与其它异常区分开来
  • 【KAFKA-4763】强化对JBOD磁盘奔溃的处理:之前JBOD下Kafka无法容忍磁盘奔溃,会直接导致broker宕机(JBOD:严格上来说不是一种RAID,因为它只是简单将多个磁盘合并成一个大的逻辑盘,并没有任何的数据冗余。数据的存放机制就是从第一块磁盘开始依序向后存储数据。如果某个磁盘损毁,则该盘上的数据就会丢失)
  1. Kafka 1.1.0版本
    1. 新功能
  • 【KAFKA-1689】将日志目录自动迁移到新位置
  • 【KAFKA-5142】KIP-145 在Kafka Connect中公开记录标题
  • 【KAFKA-6170】在Streams的KafkaClientSupplier中添加AdminClient
  • 【KAFKA-6240】支持Broker配置动态更新
    1. 改进(主要)
  • 【KAFKA-5526】KIP-175 kafka-consumer-groups.sh脚本中ConsumerGroupCommand类优化,增加更多可选参数,根据所写参数打印提示信息
  • 【KAFKA-5925】AdminClient API新增deleteRecords接口,用于删除消息
  • 【KAFKA-6430】改善Kafka Gzip压缩性能
  1. Kafka 2.0.0版本
    1. 新功能(主要)
  • 【KAFKA-6576】可配置的配额管理(KIP-257)
  • 【KAFKA-6841】添加对前缀ACL支持
    1. 改进(主要)
  • 【KAFKA-2061】提供 - - version标志以打印kafka版本,使用客户端端脚本打印kafka版本
  • 【KAFKA-3473】KIP-237添加更多JMX监控指标
  • 【KAFKA-6058】KIP-222 KafkaAdminClient API新增listConsumerGroups()、describeConsumerGroups()、deleteConsumerGroups()
  • 【KAFKA-6562】KIP-255 通过SASL/OAUTHBEARER进行Oauth身份验证
  • 【KAFKA-6615】增加kafka-dump-log.sh脚本,用于查看segments文件
  • 【KAFKA-6640】提高KafkaAdminClient.describeTopics()的效率
  • 【KAFKA-6726】 KIP-277 用于CreateTopics API的细粒度ACL(对自己创建的topic拥有整个生命周期)
  • 【KAFKA-6955】在DeleteRecordsConmmand中使用Java AdminClient,对应kafka-delete-records.sh脚本
  • 【KAFKA-7050】将消费者请求超时降低到30秒
    1. 其它(主要)
  • 【KAFKA-2983】【KAFKA-6921】删除对旧版Scala producer和consumer的支持
  • 【KAFKA-4423】删除对java 7的支持
  1. Kafka 2.1.0版本
    1. 改进(主要)
  • 【KAFKA-4514】支持Zstandard压缩(Zstandard由FaceBook开源,具有占用带宽少、吞吐率低、延时低、磁盘占用少的特点)
  • 【KAFKA-5886】增加delivery.timeout.ms生产者超时配置(KIP-91),delivery.timeout.ms >= linger.ms + retry.backoff.ms + request.timeout.ms
  • 【KAFKA-6884】ConsumerGroupCommand使用新的AdminClient,对应脚本kafka-consumer-groups.sh
  • 【KAFKA-7117】允许AclCommand使用AdminClient API,对应脚本
  • 【KAFKA-7147】允许kafka-reassign-partitions.sh和kafka-log-dirs.sh通过指定配置文件初始化客户端(解决认证情况不能增加认证参数问题)
  • 【KAFKA-7264】支持Java 11
    1. 其它(主要)

【KAFKA-7139】使用kafka-topics.sh脚本查看topic列表时,支持排除内部主题

  1. Kafka 2.2.0版本
    1. 改进(主要)
  • 【KAFKA-5962】使用AdminClient重构PreferredReplicaLeaderElectionCommand,对应脚本kafka-preferred-replica-election.sh
  • 【KAFKA-6774】改善consumer中groupId的值
  • 【KAFKA-7054】Kafka describe命令应该抛出主题不存在异常
  • 【KAFKA-7352】KIP-368 允许SASL连接定期重新进行身份验证
  • 【KAFKA-7433】在TopicCommand中使用AdminClient,对应脚本kafka-topics.sh
  • 【KAFKA-7524】推荐使用Scala 2.12
  • 【KAFKA-7641】添加“consumer.group.max.size”以限制broker上的consumer元数据大小
  • 【KAFKA-7687】深度迭代时在DumpLogSegments中打印批次信息,对应kafka-dump-log.sh脚本
  • 【KAFKA-7719】提高SocketServer处理器的公平性,通过max.connections.per.ip限制每个ip上连接的总数
  1. Kafka 2.3.0版本
    1. 新功能(主要)
  • 【KAFKA-7283】对非活跃的segments文件,broker启动时跳过检查,缩短启动时间
  • 【KAFKA-7730】通过max.connections.per.ip限制每个ip上连接的总数
  • 【KAFKA-7904】KIP-427 添加AtMinIsr主题分区类型(新的JMX监控指标和TopicCommand选项)
    1. 改进(主要)
  • 【KAFKA-6161】为序列化器,反序列化器和Serde添加默认实现到close()和configure()
  • 【KAFKA-7236】在kafka.topics.sh脚本中添加 --under-min-isr选项
  • 【KAFKA-7320】在KafkaConsumer中提供自动创建主题开关
  • 【KAFKA-7466】KIP-339 AdminClient中添加IncrementAlterConfigs API,用于增量修改配置
  • 【KAFKA-7847】KIP-421 实现自动解析外部配置
  1. Kafka 2.4.0版本
    1. 新功能(主要)
  • 【KAFKA-3333】支持“Always Round-Robin”分区的备用分区程序
  • 【KAFKA-7471】kafka-consumer-groups.sh支持批量操作组
  • 【KAFKA-7500】MirrorMaker 2.0(KIP-382),用于数据迁移
  • 【KAFKA-7800】扩展Admin API已支持动态修改broker日志级别
  • 【KAFKA-8907】在CreateTopic响应中返回主题配置
    1. 改进(主要)
  • 【KAFKA-7197】支持Scala 2.13.0
  • 【KAFKA-8305】AdminClient支持使用默认分区和副本数创建主题
  • 【KAFKA-8544】删除旧版kafka.admin.AdminClient
  • 【KAFKA-8545】删除旧版ZKUtils
  • 【KAFKA-8634】将ZooKeeper更新为3.5.5
  • 【KAFKA-8730】客户端API和脚本工具支持删除已提交的偏移量
  • 【KAFKA-9033】允许在重新分配分区时创建分区
    1. 其它
  • 【KAFKA-8704】添加PartitionAssignor适配器以实现向后兼容
  • 【KAFKA-8760】KIP-504 添加新的Java Authorizer API,支持动态配置

总结

  1. 2.0.0版本将会弃用Java 7,所以升级到该版本必须保证客户端在Java 7以上;
  2. 版本越高可以使用更丰富的客户端AdminClient API以及脚本工具;
  3. 相比于0.10.2.1,高版本更好的支持磁盘容错,更优雅的处理磁盘错误(1.x版本支持);
  4. 在使用Kafka时应遵循一个基本原则,Kafka客户端版本和服务端版本应该保持一致(不同版本间存在协议转换、编码解码过程,会损耗性能);

你可能感兴趣的:(kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结)