近日Kafka2.6版本公布,间隔2.5.0公布只过来了不到四个月的工夫。

Kafka 2.6.0蕴含许多重要的新性能。以下是一些重要更改的摘要:

  • 默认状况下,已为Java 11或更高版本启用TLSv1.3
  • 性能显着进步,尤其是当代理具备大量分区时
  • 扩大Kafka Streams的应用程序更便捷
  • Kafka Streams反对更改时收回
  • 新的metrics可提供更好的经营洞察力
  • 配置为进行连贯时,Kafka Connect能够主动创立Topic
  • 改良了Kafka Connect中接收器连接器的错误报告选项
  • Kafka Connect中的新过滤器和有条件地利用SMT
  • “ client.dns.lookup”配置的默认值当初为“ use_all_dns_ips”。
  • 将Zookeeper降级到3.5.8

新性能

  • 增加KStream#repartition操作
  • 使SSL上下文/引擎配置可扩大
  • 默认状况下启用TLSv1.3,并禁用某些较旧的协定
  • 有条件地利用SMT
  • 向流指标增加工作级流动过程比率
  • 重构主循环以一次解决一个工作的多个记录

改善

  • 加强了TransformerSupplier / ProcessorSupplier
  • 清理工作治理
  • 将“ onAssignment”流与“ partitionsAssigned”工作创立合并
  • 公开磁盘读写指标
  • 容许消费者明确触发从新均衡
  • 将gradle更新为6.0+
  • 反对Java 14
  • 将默认版本切换到Scala 2.13
  • -改良“ matchingAcls”的性能
  • 控制台生产者反对client.id的设置

降级指南:

如果要从2.1.x之前的版本升级,请参阅以下正文,以理解用于存储使用者偏移量的架构的更改。将inter.broker.protocol.version更改为最新版本后,将无奈降级到2.1之前的版本。

对于滚动降级:

  1. 在所有代理上更新server.properties并增加以下属性。CURRENT_KAFKA_VERSION指的是您要降级的版本。CURRENT_MESSAGE_FORMAT_VERSION是指以后应用的音讯格局版本。如果以前笼罩了音讯格局版本,则应保留其以后值。或者,如果要从0.11.0.x之前的版本升级,则应将CURRENT_MESSAGE_FORMAT_VERSION设置为与CURRENT_KAFKA_VERSION相匹配。

    • inter.broker.protocol.version = CURRENT_KAFKA_VERSION(例如2.52.4等)
    • log.message.format.version = CURRENT_MESSAGE_FORMAT_VERSION
  1. 如果要从0.11.0.x或更高版本升级,并且尚未笼罩音讯格局,则只须要笼罩代理间协定版本。

    • inter.broker.protocol.version = CURRENT_KAFKA_VERSION(例如2.52.4等)
  2. 一次降级一个代理:敞开代理,更新代码,而后重新启动。实现此操作后,代理将运行最新版本,并且您能够验证集群的行为和性能是否合乎预期。如果有任何问题,此时依然能够降级。
  3. 验证集群的行为和性能后,请通过编辑协定版本inter.broker.protocol.version并将其设置为来更改协定版本 2.6
  4. 逐个重新启动代理,以使新协定版本失效。代理开始应用最新的协定版本后,将无奈再将群集降级到较旧的版本。
  5. 如果您已依照上述阐明笼罩了音讯格局版本,则须要再次滚动重启以将其降级到最新版本。一旦所有(或大多数)使用者都降级到0.11.0或更高版本,则在每个代理上将log.message.format.version更改为2.6,而后逐个重新启动它们。请留神,不再保护的较旧的Scala客户端不反对0.11中引入的音讯格局,为防止转换老本必须应用较新的Java客户端。

2.6.0留神点

Kafka Streams增加了一种新的解决模式(须要Broker 2.5或更高版本),该模式应用齐全一次的保障进步了应用程序的可伸缩性。

缺省状况下,Java 11或更高版本已启用TLSv1.3。如果客户端和服务器均反对TLSv1.3,则将协商该协定,否则将回退至TLSv1.2。

缺省状况下,Java 11或更高版本已启用TLSv1.3。如果客户端和服务器均反对TLSv1.3,则将协商该协定,否则将回退至TLSv1.2。

NotLeaderForPartitionException已弃用,并已替换为NotLeaderOrFollowerException。如果代理不是正本,则获取申请和仅用于领导者或跟随者的其余申请将返回NOT_LEADER_OR_FOLLOWER(6)而不是REPLICA_NOT_AVAILABLE(9),以确保重新分配期间的此临时谬误由所有客户端作为可重试的异样进行解决。

更多Flink,Kafka,Spark等相干技术博文,科技资讯,欢送关注实时流式计算 公众号后盾回复 “电子书” 下载300页Flink实战电子书