Kafka2.6.0发布——性能大幅提升

简介: Kafka2.6.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等)
  1. 一次升级一个代理:关闭代理,更新代码,然后重新启动。完成此操作后,代理将运行最新版本,并且您可以验证集群的行为和性能是否符合预期。如果有任何问题,此时仍然可以降级。
  2. 验证集群的行为和性能后,请通过编辑协议版本inter.broker.protocol.version并将其设置为来更改协议版本 2.6
  3. 逐一重新启动代理,以使新协议版本生效。代理开始使用最新的协议版本后,将无法再将群集降级到较旧的版本。
  4. 如果您已按照上述说明覆盖了消息格式版本,则需要再次滚动重启以将其升级到最新版本。一旦所有(或大多数)使用者都升级到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),以确保重新分配期间的此暂时错误由所有客户端作为可重试的异常进行处理。

相关文章
|
12天前
|
消息中间件 存储 网络协议
【Kafka】Kafka 性能高的原因分析
【4月更文挑战第5天】【Kafka】Kafka 性能高的原因分析
|
1月前
|
消息中间件 弹性计算 测试技术
如何快速实现 Kafka 性能压测
如何快速实现 Kafka 性能压测
89800 1
|
3月前
|
消息中间件 NoSQL Java
Kafka性能篇:为何Kafka这么"快"?
Kafka性能篇:为何Kafka这么"快"?
534 0
|
消息中间件 安全 测试技术
Kafka、RabbitMQ、RocketMQ 消息中间件的对比 | 消息发送性能篇
消息中间件性能究竟哪家强? 带着这个疑问,我们消息队列测试小组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。
24249 1
|
7月前
|
消息中间件 网络协议 Kafka
RabbitMQ、RocketMQ、Kafka性能为何差距如此之大?
MQ的作用解耦、异步、削峰填谷。 未使用MQ的情况
|
9月前
|
消息中间件 存储 数据采集
Kafka 性能实践知多少
众所周知,Apache Kafka 是一个分布式开源流和事件处理平台,广泛应用于各大互联网公司以及基于不同体系的软件架构的业务场景中。其实,基于早期的设计理念而言,Kafka 最初被设想为消息队列,并基于分布式提交日志的抽象。然而,自 2011 年由 LinkedIn 创建并开源以来,Kafka 已迅速从消息队列演变为成熟的事件流处理平台。
102 0
|
11月前
|
消息中间件 网络协议 JavaScript
「事件驱动架构」Kafka vs. RabbitMQ:架构、性能和用例
「事件驱动架构」Kafka vs. RabbitMQ:架构、性能和用例
|
消息中间件 存储 Java
说一说Kafka性能高的原因???
说一说Kafka性能高的原因???
82 0
|
消息中间件 缓存 网络协议
【Kafka】-Kafka服务端脚本详解(3)一性能测试脚本
Kafka服务端脚本详解(3)一性能测试脚本
【Kafka】-Kafka服务端脚本详解(3)一性能测试脚本
|
消息中间件 存储 监控
生产故障|Kafka ISR频繁伸缩引发性能急剧下降
生产故障|Kafka ISR频繁伸缩引发性能急剧下降
生产故障|Kafka ISR频繁伸缩引发性能急剧下降

热门文章

最新文章