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),以确保重新分配期间的此暂时错误由所有客户端作为可重试的异常进行处理。

相关文章
|
6月前
|
消息中间件 存储 网络协议
【Kafka】Kafka 性能高的原因分析
【4月更文挑战第5天】【Kafka】Kafka 性能高的原因分析
|
25天前
|
消息中间件 监控 大数据
优化Apache Kafka性能:最佳实践与调优策略
【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
62 4
|
1月前
|
消息中间件 存储 监控
说说如何解决RocketMq消息积压?为什么Kafka性能比RocketMq高?它们区别是什么?
【10月更文挑战第8天】在分布式系统中,消息队列扮演着至关重要的角色,它不仅能够解耦系统组件,还能提供异步处理、流量削峰和消息持久化等功能。在众多的消息队列产品中,RocketMQ和Kafka无疑是其中的佼佼者。本文将围绕如何解决RocketMQ消息积压、为什么Kafka性能比RocketMQ高以及它们之间的区别进行深入探讨。
83 1
|
3月前
|
图形学 人工智能 C#
从零起步,到亲手实现:一步步教你用Unity引擎搭建出令人惊叹的3D游戏世界,绝不错过的初学者友好型超详细指南 ——兼探索游戏设计奥秘与实践编程技巧的完美结合之旅
【8月更文挑战第31天】本文介绍如何使用Unity引擎从零开始创建简单的3D游戏世界,涵盖游戏对象创建、物理模拟、用户输入处理及动画效果。Unity是一款强大的跨平台游戏开发工具,支持多种编程语言,具有直观编辑器和丰富文档。文章指导读者创建新项目、添加立方体对象、编写移动脚本,并引入基础动画,帮助初学者快速掌握Unity开发核心概念,迈出游戏制作的第一步。
208 1
|
3月前
|
消息中间件 Kafka 测试技术
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
|
3月前
|
消息中间件 传感器 缓存
为什么Kafka能秒杀众多消息队列?揭秘它背后的五大性能神器,让你秒懂Kafka的极速之道!
【8月更文挑战第24天】Apache Kafka作为分布式流处理平台的领先者,凭借其出色的性能和扩展能力广受好评。本文通过案例分析,深入探讨Kafka实现高性能的关键因素:分区与并行处理显著提升吞吐量;批量发送结合压缩算法减少网络I/O次数及数据量;顺序写盘与页缓存机制提高写入效率;Zero-Copy技术降低CPU消耗;集群扩展与负载均衡确保系统稳定性和可靠性。这些机制共同作用,使Kafka能够在处理大规模数据流时表现出色。
63 3
|
4月前
|
消息中间件 存储 缓存
面试题Kafka问题之Kafka的生产消费基本流程如何解决
面试题Kafka问题之Kafka的生产消费基本流程如何解决
47 1
|
3月前
|
消息中间件 存储 Kafka
现代消息队列与云存储问题之Kafka在海量队列场景下存在性能的问题如何解决
现代消息队列与云存储问题之Kafka在海量队列场景下存在性能的问题如何解决
|
6月前
|
消息中间件 监控 固态存储
性能工具之 Kafka 快速 BenchMark 测试示例
【5月更文挑战第24天】性能工具之 Kafka 快速 BenchMark 测试示例
436 1
性能工具之 Kafka 快速 BenchMark 测试示例
|
6月前
|
消息中间件 存储 网络协议
Kafka 线程模型痛点攻克: 提升分区写入 2 倍性能
Apache Kafka的单分区写入性能在某些严格保序场景中至关重要,但其现有线程模型限制了性能发挥。本文分析了Kafka的串行处理模型,包括SocketServer、KafkaChannel、RequestChannel等组件,指出其通过KafkaChannel状态机确保请求顺序处理,导致处理效率低下。AutoMQ提出流水线处理模型,简化KafkaChannel状态机,实现网络解析、校验定序和持久化的阶段间并行化,提高处理效率。测试结果显示,AutoMQ的极限吞吐是Kafka的2倍,P99延迟降低至11ms。
129 3
Kafka 线程模型痛点攻克: 提升分区写入 2 倍性能
下一篇
无影云桌面