乐趣区

关于kafka:Kafka260发布性能大幅提升

近日 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 实战电子书

退出移动版