Apache Kafka 2.5 稳定版发布,新特性抢先看

Apache Kafka 2.5.0 稳定版于美国当地时间2020年4月15日正式发布,这个版本包含了一系列的重要功能发布,比较重要的特性重要包括:

•支持 TLS 1.3 (目前默认是用 1.2)•Kafka Streams DSL 中支持 Co-groups;•Kafka Consumer 支持增量再平衡(Incremental rebalance)•为更好地洞察算子运行,引入了新的指标;•Apache Zookeeper 升级到 3.5.7•不再支持 Scala 2.11•KIP-500 有了新的进展。

如果需要下载最新版的 Apache Kafka 2.5.0,可以到这里下载。由于时间和篇幅的关系,下面文章列出本次比较重要的特性和进展。

Kafka broker, producer, 和 consumer 的更新

KIP-500 有了新的进展

用过 Kafka 的用户应该清楚,Kafka 的 Broker、topic 以及分区相关的信息是存放在 Apache Zookeeper 中的,Apache Zookeeper 是一个独立的系统,有其独立的存储,为了 Kafka 集群能够更好地运行,开发者们必须对 Kafka 和 Zookeeper 两个系统都很熟悉,这在一定程度上是增加了我们的负担。为了减少使用者的负担,KIP-500 提议将之前存储在 Zookeeper 里面的东西全部移到 Kafka 集群内部维护,也就是说未来 Kafka 不需要依赖 Zookeeper 即可运行。

Apache Kafka 2.5.0 版本对这项工作有了新的进展,比如 KIP-555 中解决管理员工具中不再需要请求 Zookeeper,KIP-543 中使得动态配置不再需要请求 Zookeeper。

KIP-500 是一个大功能,它的最后解决需要在未来几个版本才能体现。

仅且一次语义(Exactly once semantics)改进

KIP-447: Producer 可伸缩性支持仅且一次语义

这个 KIP 简化了以事务方式从 Kafka 读写的应用程序的 API。以前,这个用例通常需要为每个输入分区提供单独的生产者实例,现在这个限制已经被取消了。这使得构建消费大量分区的仅且一次语义的应用程序变得更加容易。详情可以参见 KIP-447。

KIP-360: 提高幂等/事务性生产者的可靠性

这个 KIP 解决了生产者状态保留在 broker 上问题,使得幂等性保证成为可能。在此之前,当日志被截断以强制保留或从删除记录的调用中截断时,broker 将删除生产者的状态,这将导致 UnknownProducerId 异常。通过这个改进,broker 将保留 producer 状态直到过期。这个 KIP 还为生产者提供了一种从意外错误中恢复的强大方法。

Kafka Streams

KIP-150: Add Cogroup to the DSL

过去,将多个流聚合成一个流可能很复杂,而且容易出错。通常我们需要将所有流分组(group)并聚合(aggregate)到表中,然后进行多个 outer join 调用。新的 co-group 算子简化了这个过程,其减少了状态存储调用的数量,总体上提高了性能。具体使用如下:

KTable<K, CG> cogrouped =
  grouped1
    .cogroup(aggregator1)
    .cogroup(grouped2, aggregator2)
    .cogroup(grouped3, aggregator3)
    .aggregate(initializer1, materialized1);
KIP-523: Add toTable() to the DSL

将事件流解释为一个变更日志并将其物化成一张表表是一种强大的方法。KIP-523 引入了 toTable() 函数的可以将其应用到流中,并能够将每个 key 的最新值进行物化。需要注意的是,任何空值(null)都将被解释为对给定键的删除。

KIP-535: 允许状态存储在重新平衡期间提供过时的数据

以前,在进行重新平衡期间,针对状态存储的交互式查询(IQ)将失败。这降低了依赖于查询 Kafka Streams 状态表功能的应用程序的正常运行时间。KIP-535 使应用程序能够查询状态存储的任何副本,并能够观察到每个副本落后于主副本多远。

Dropped support and deprecations

我们已经在 Apache Kafka 2.5 中删除了对 Scala 2.11 的支持,现在 Scala 2.12 和 2.13 是唯一受支持的版本。

TLS 1.2 现在是默认的 SSL 协议,不过仍然支持 TLS 1.0 和 1.1。

参考:What’s New in Apache Kafka 2.5:https://www.confluent.io/blog/apache-kafka-2-5-latest-version-updates/



RECOMMEND
推荐阅读

《Kafka源码解析与实战》



点击书封了解详情并购买



本书从LinkedIn(领英)公司内部大数据架构讲起,引申出消息队列Kafka,接着讲解Kafka的基本架构,然后着重分析Kafka内部的各模块实现细节。从诞生背景至架构组成,再到内部实现细节,由浅入深,循序渐进。


本书不仅讲解Kafka内部的实现原理,而且还详细描述Kafka外部的维护工具,对外的客户端编程原理以及和第三方集成的方式。在讲解Kafka的过程中还穿插了大量的图片,图文并茂,生动形象,使读者能更加深入地熟悉Kafka。


作者王亮 ,资深架构师,曾在华为担任虚拟化技术工程师,后加入大华公司任分布式数据库系统架构师,研究兴趣为分布式存储、分布式数据库、消息系统等。





更多精彩回顾



 书单 |大数据战略上升为国家战略,悄悄告诉你大数据大牛都在读的8本书干货 | 73页PPT,教你从0到1构建用户画像系统(附下载)
榜单 | 423世界读书日 | 华章精品IT书单独家推荐收藏 | 这10本书助你从容应对数字化转型中可能出现的各种挑战





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值