Kafka3.1.0发布信息可参考https://cwiki.apache.org/confluence/display/KAFKA/Release+Plan+3.1.0
1.发布时间
KIP Freeze时间:2021年10月15日
Feature Freeze时间:2021年10月29日
Code Freeze时间:2021年11月12日
代码封板后,最少需要保持2周的稳定期。
2.版本需求
Kafka3.1.0对以下10个特性进行了开发。
KIP-775: Custom partitioners in foreign key joins
外键连接中的自定义分区器
今天,Kafka Streams 中的外键 (FK) 连接只有在连接的两个表(主表和外键表)都使用默认分区器时才有效。
此限制是由于实现中的订阅和响应主题被硬连线以使用默认分区器。如果外键表未与订阅主题共同分区,则外键查找可能会被路由到没有外键表状态的 Streams 实例,从而导致缺少连接记录。类似地,如果主表未与响应主题共同分区,则订阅响应可能会被路由到不包含原始(触发)记录的实例,从而导致哈希比较失败和连接结果丢失。
KIP-775通过扩展外键连接接口以允许传入自定义分区器,引入了对具有自定义分区器的表的外键连接的支持。
KIP-783: Add TaskId field to StreamsException
将TaskId字段添加到StreamsException
KIP-783保证向未捕获的异常处理程序抛出的每个异常,无论是新StreamsUncaughtExceptionHandler的还是旧的 generic UncaughtExceptionHandler,都被包装为StreamsException. KIP 还向该类引入了一个新TaskId字段StreamsException,并使用 getter API 来公开它。为源自特定任务或与特定任务相关的任何异常设置此字段。
KIP-773: Differentiate consistently metric latency measured in millis and nanos
区分以毫秒和纳为单位测量的一致度量延迟
KIP-773使用 millis 和 nanos 增强了三个新客户端指标的命名一致性。例如,io-waittime-total重新引入为io-wait-time-ns-total. 之前引入的没有的指标ns将被弃用,但可用于向后兼容。
KIP-768: Extend SASL/OAUTHBEARER with Support for OIDC
扩展 SASL/OUTHBEARER 并支持 OIDC
KIP-768提供了 KIP-255 中定义的接口的内置和生产级实现,以允许 Kafka 连接到 OpenID 身份提供者(例如,Okta、Auth0 和 Microsoft Azure)以进行身份验证和令牌检索。
KIP-766: fetch/findSessions queries with open endpoints for SessionStore/WindowStore
使用 SessionStore/WindowStore 的开放端点获取/findSessions 查询
KIP-766扩展了现有范围接口的语义,ReadOnlySessionStore以ReadOnlyWindowStore支持无界范围。具体来说,接口现在支持使用空值作为表示无限范围的一种方式。
KIP-763: Range queries with open endpoints
具有开放端点的范围查询
KIP-763扩展了现有range和reverseRange接口的语义ReadOnlyKeyValueStore以支持无限范围。具体来说,接口现在支持使用空值作为表示无限范围的一种方式。
KIP-761: Add Total Blocked Time Metric to Streams
将总阻塞时间指标添加到 Streams
KIP-761引入了一个新的度量标准,该度量标准blocked-time-total衡量 Kafka Streams 线程自启动以来在 Kafka 上花费的总时间。用户可以定期对该指标进行采样,并使用样本之间的差异来测量间隔内阻塞的时间。这对于调试 Kafka Streams 应用程序性能非常有用,因为它给出了应用程序在 Kafka 上被阻塞的时间与处理记录的比例。
KIP-748: Add Broker Count Metrics
添加Broker计数指标
KIP-748引入了两个由 ZooKeeper 和 KRaft 控制器公开的新指标:ActiveBrokerCount和FencedBrokerCount. 它们分别暴露了控制器已知的集群中活动代理的数量和控制器已知的受保护代理的数量。
KIP-690: Add additional configuration to control MirrorMaker 2 internal topics naming convention
添加附加配置以控制 MirrorMaker2 内部主题命名约定
MirrorMaker2 (MM2) 内部主题名称(心跳、检查点和偏移同步)在源代码中是硬编码的,这使得 MM2 很难与任何具有主题命名约定规则且不允许自动创建的 Kafka 集群一起运行为主题。在这种情况下,您需要预先手动创建这些内部主题,并确保它们确实遵循集群规则和主题创建指南,因此 MM2 应该可以灵活地让您覆盖内部主题的名称以使用您创建的主题。
KIP-690引入了新方法来ReplicationPolicy定义如何根据一些新配置命名 MM2 内部主题。
KIP-633: Deprecate 24-hour Default Grace Period for Windowed Operations in Streams