分享

重磅发布!Apache Kafka 3.1.0改进和新功能解读

levycui 2022-1-26 23:01:57 发表于 版本说明 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 2001
问题导读:
1、Kafka 代理、生产者、消费者和 AdminClient有哪些变化?
2、Kafka Streams有哪些调整?
3、外键连接中的自定义分区器有哪些调整?
4、MirrorMaker优化了哪些内容?



我很高兴代表 Apache Kafka® 社区宣布Apache Kafka 3.1.0的发布。3.1.0 版本包含许多改进和新功能。我们将在这篇博文中重点介绍一些更突出的功能,但请参阅发行说明以获取完整的更改列表。

虽然仍然不建议将 KRaft 用于生产(已知差距),但我们已经修复了多个错误,并且我们继续添加缺失的功能。

分层存储工作仍在继续,目标是解锁无限扩展和更快的重新平衡时间。

您还可以观看发布视频,了解 Apache Kafka 3.1.0 中的新功能摘要。

Kafka 代理、生产者、消费者和 AdminClient


KIP-516:主题标识符

从 Apache Kafka 3.1 开始,FetchRequest支持主题 ID。主题 ID 提供了一种更安全的方式来从主题中获取数据,而不会与同名的过时主题进行错误交互。它还提高了 fetch 协议的效率,因为Uuids在线发送通常比发送小Strings。这是KIP-516发展向前迈出的重要一步。

KIP-773:区分以毫秒和纳为单位测量的一致度量延迟

KIP-773使用 millis 和 nanos 增强了三个新客户端指标的命名一致性。例如,io-waittime-total重新引入为io-wait-time-ns-total. 之前引入的没有的指标ns将被弃用,但可用于向后兼容。

KIP-768:扩展 SASL/OUTHBEARER 并支持 OIDC

KIP-768提供了 KIP-255 中定义的接口的内置和生产级实现,以允许 Kafka 连接到 OpenID 身份提供者(例如,Okta、Auth0 和 Microsoft Azure)以进行身份验证和令牌检索。

KIP-748:添加代理计数指标

KIP-748引入了两个由 ZooKeeper 和 KRaft 控制器公开的新指标:ActiveBrokerCount和FencedBrokerCount. 它们分别暴露了控制器已知的集群中活动代理的数量和控制器已知的受保护代理的数量。

Kafka Streams

KAFKA-13439:不推荐使用急切的重新平衡协议

自 Kafka 2.4 以来,协作式再平衡协议一直是默认协议,但我们继续支持 Eager 式再平衡协议,以提供从早期客户端版本升级的路径。此支持将在未来的版本中删除,因此任何仍在使用 Eager 协议的用户都应准备完成将其应用程序升级到版本 3.1 中的协作协议。有关详细信息,请参阅KAFKA-13439。

KIP-783:将TaskId字段添加到StreamsException

KIP-783保证向未捕获的异常处理程序抛出的每个异常,无论是新StreamsUncaughtExceptionHandler的还是旧的 generic UncaughtExceptionHandler,都被包装为StreamsException. KIP 还向该类引入了一个新TaskId字段StreamsException,并使用 getter API 来公开它。为源自特定任务或与特定任务相关的任何异常设置此字段。

KIP-775:外键连接中的自定义分区器

今天,Kafka Streams 中的外键 (FK) 连接只有在连接的两个表(主表和外键表)都使用默认分区器时才有效。

此限制是由于实现中的订阅和响应主题被硬连线以使用默认分区器。如果外键表未与订阅主题共同分区,则外键查找可能会被路由到没有外键表状态的 Streams 实例,从而导致缺少连接记录。类似地,如果主表未与响应主题共同分区,则订阅响应可能会被路由到不包含原始(触发)记录的实例,从而导致哈希比较失败和连接结果丢失。

KIP-775通过扩展外键连接接口以允许传入自定义分区器,引入了对具有自定义分区器的表的外键连接的支持。
KIP-766:使用 SessionStore/WindowStore 的开放端点获取/findSessions 查询

KIP-766扩展了现有范围接口的语义,ReadOnlySessionStore以ReadOnlyWindowStore支持无界范围。具体来说,接口现在支持使用空值作为表示无限范围的一种方式。

KIP-763:具有开放端点的范围查询

KIP-763扩展了现有range和reverseRange接口的语义ReadOnlyKeyValueStore以支持无限范围。具体来说,接口现在支持使用空值作为表示无限范围的一种方式。

KIP-761:将总阻塞时间指标添加到 Streams

KIP-761引入了一个新的度量标准,该度量标准blocked-time-total衡量 Kafka Streams 线程自启动以来在 Kafka 上花费的总时间。用户可以定期对该指标进行采样,并使用样本之间的差异来测量间隔内阻塞的时间。这对于调试 Kafka Streams 应用程序性能非常有用,因为它给出了应用程序在 Kafka 上被阻塞的时间与处理记录的比例。

MirrorMaker


KIP-690:添加附加配置以控制 MirrorMaker2 内部主题命名约定

MirrorMaker2 (MM2) 内部主题名称(心跳、检查点和偏移同步)在源代码中是硬编码的,这使得 MM2 很难与任何具有主题命名约定规则且不允许自动创建的 Kafka 集群一起运行为主题。在这种情况下,您需要预先手动创建这些内部主题,并确保它们确实遵循集群规则和主题创建指南,因此 MM2 应该可以灵活地让您覆盖内部主题的名称以使用您创建的主题。

KIP-690引入了新方法来ReplicationPolicy定义如何根据一些新配置命名 MM2 内部主题。

总结

除了此处列出的 KIP 之外,Apache Kafka 3.1 有很多很棒的修复和改进。了解更多:

  •     有关更改的完整列表,请参阅发行说明
  •     查看视频或播客以了解更多信息
  •     下载Apache Kafka 3.1.0以开始使用最新版本

作者:apache
来源:https://mp.weixin.qq.com/s/GGf-H9nMjCLSbwKbeQxj4Q

最新经典文章,欢迎关注公众号




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条