Apache Kafka 3.3正式发布

2022-05-30 10:48隆和志
计算机与网络 2022年19期
关键词:副本偏移量吞吐量

隆和志

近年来,Apache Kafka社区一直在开发一种使用自我管理元数据运行的新方法。这种新的KRaft社区模式提高了可扩展性和弹性,同时实现了Apache Kafka的部署。另外还有在每个Apache Kafka周围运行Apache ZooKeeper集群的需要。

Apache Kafka 3.3版本包含许多新功能和改进,这里重点介绍一些更突出的功能。

KIP-833:将KRaft标记为生产就绪

KIP将KRaft标记为可用于Kafka 3.中的新近8-3版本的Apache K3的生产版本。IP -833 KRaft 3.5.0标记为连接KRaft的版本。

KIP-778:KRaft到KRaft的升级

KIP- 7788允许升级KRaft集群,而不是双滚模式。为了能够升级在KRaft的下模式,需要升级和代理Apache的RPC,直到允许使用新的RPC和格式记录集群升级。

KIP-841:不允许受保护的副本加入KRaft中的ISR

KIP-841提高了干净关闭期间主题执行的保护功能。它通过强制以下不变量来完成:①保护受控关闭的副本不符合ISR的条件;②受保护的或受控的副本没有资格成为领导者关闭。

KIP-836:公开集群元数据的复制信息

KIP-836将描述Quorum API显示给管理员客户端,并添加每个副本到响应中。

KIP-835:监控KRaft控制器Quorum健康状况

使用KRaft模式,Apache Kafka向集群添加了一个新的控制器仲裁,这些控制器需要能够提交记录以使Apache Kafka可用。

KIP-835通过周期性增加高水位线和最后提交的偏移量来衡量可用性,监控服务可以比较这些最后提交的偏移量是否正在推进。他们还可以使用这些指标来检查所有代理和控制器是否在彼此的偏移量内。

KIP-794:严格统一的粘性分区

KIP-794改进了默认分区器,以在健康的代理之间分批均匀分布非监控数据,而向不健康的代理分配更少的数据。例如,具有异常行为的生产者工作负载的p99延迟从11 s减少到154 ms。

KIP-859:添加元数据日志处理错误相关指标

在KRaft模式下,集群元数据复制日志是集群中所有服务器元数据相关信息的来源。处理此日志时发生的任何错误都可能导致服务器的内存状态变得不一致,重要的是要使此类错误可见。KIP-859公开了可以监控的指标,以便可以发现受影响的服务器。

KIP-373:允许用户为其他用户创建委托令牌

KIP-373允许用户为其他用户创建委托令牌,允许以下用例:①指定的超级用户可以创建令牌而不需要单独的用户凭据;②指定的超级用户可以代表另一个用户运行Kafka客户端。

KIP-831:为日志恢复进度添加指标

日志恢复是Kafka服务器启动时触发的过程,如果之前有过不干净的关闭,它可以确保日志处于良好状态并且没有损坏。KIP-831公开指标以允许用户监控日志恢复的进度。

KIP-709:扩展OffsetFetch RPC以接受多个组ID

KIP-709简化了从消费者组获取偏移量的过程,以便可以发出单个请求来获取多个组的偏移量。这具有以下优点:①减少了请求开销;②简化了客户端代码。

KIP-827:通过Kafka API公开日志目录的总空间和可用空间

KIP-827公开了一个RPC,用于查询每个日志目录的磁盘总大小和磁盘使用大小,这有利于在不依赖公开指标的情况下查询此信息的工具。

KIP-851:将requireStable标志添加到ListConsumerGroup OffsetsOptions

KIP-851在管理客户端中添加了选项,用于在使用恰好一次语义时查询提交的偏移量。

KIP-843:向Metrics添加addMetricIfAbsent方法

KIP-843允许指标API以原子方式查询指标(如果存在)或创建指标(如果不存在)。

KIP-824:允许转储段日志限制输出中的批次

KIP-824允许将kafka-dump-logs工具配置为仅扫描和打印日志段开头的记录,而不是整个日志段。

KIP-846:Streams中消费/生产吞吐量的源/接收节点指标

借助普通消費者中可用的指标,Kafka Streams的用户可以在子拓扑级别推导出其应用程序的消耗吞吐量,但对于产生的吞吐量而言,情况并非如此。

KIP-846填补了这一空白,并通过引入2个新的接收节点吞吐量指标,为最终用户提供了一种计算每个子拓扑的生产率的方法。尽管可以使用现有的客户端级别指标推导出消耗的吞吐量,但KIP-846还为源节点的吞吐量添加了2个新指标,提供与汇节点处新添加的指标同样细粒度的指标范围,简化用户体验。

KIP-812:引入另一种形式的KafkaStreams.close() API,强制成员离开消费者组

通过强制成员离开消费者组KIP-812可以永久关闭流。

KIP-834:暂停/恢复KafkaStreams拓扑

KIP-834增加了暂停和恢复拓扑的能力。这可用于减少使用的资源或修改数据管道。暂停的拓扑跳过处理、标点和备用任务。对于分布式Streams应用程序,每个实例都需要单独暂停和恢复。

KIP-820:合并KStream的transform()和process()

KIP-820泛化了KStream API以整合可以转发结果(Transformers)和不能转发(Processors)。该更改使用了新的类型安全处理器API,这简化了Kafka Streams,使其更易于使用和学习。

KIP-618:source连接器的Exactly Once的支持

KIP-618为源连接器添加了一种语义支持。Connect框架已扩展为以原子方式将源记录及其源偏移量写入Apache Kafka,并防止僵尸任务向Apache Kafka生成数据。

猜你喜欢
副本偏移量吞吐量
基于格网坐标转换法的矢量数据脱密方法研究
面向流媒体基于蚁群的副本选择算法①
搅拌针不同偏移量对6082-T6铝合金接头劳性能的影响
基于最小二乘平差的全极化SAR配准偏移量估计方法
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
副本放置中的更新策略及算法*
2014年1月长三角地区主要港口吞吐量
基于Andriod多屏互动的遥控器设计