zvvq技术分享网

Kafka 中的分层存储 - Uber 技术博客摘要(kafka分区

作者:zvvq博客网
导读Uber 的技术博客发表了一篇文章,Introduction to Kafka Tiered Storage at Uber,旨在通过更少的 Kafka Broker 和更少的内存来最大限度地保留数据。这允许在各种业务应用程序中延长消息保留时间。

内容来自zvvq

Uber 的技术博客发布了一篇文章,Introduction to Kafka Tiered Storage at Uber,希望通过更低的 Kafka Broker 和更低的内存来最大程度地保存数据。这容许在各类业务应用程序中增加信息保存期。

内容来自samhan666

普遍解决方案是手动集成外部存储,定期将数据同步到外部系统。但是,这涉及大量开发与维护工作,比如明确怎样保存数据、设定同歩频率、开启步骤、读取数据与使用检索。 zvvq

因而,Uber提出了一个解决方法,封装了外部存储的思路,通过简单的配备使之即插即用。此功能正在与 Apache 基金会联合开发,并将在未来版本给予。 内容来自zvvq,别采集哟

构想重要的是要掌握 Kafka 是一个具有十分高吞吐量实力的仅附加消息队列 (MQ) 部件。 Kafka将日志存储在broker的本地存储上,客户可以配置保存期或日志尺寸。在我之前的企业(想到),我们使用Flink来不断消费数据。大数据量会导致Kafka超过磁盘存储限定,造成数据载入失败与业务错误。为了降低成本,我们只能调节保存期,而非布署大量设备。 内容来自samhan666

此外,假如每个公司都开发自己的系统来将旧数据保存到外部存储,那样将涉及大量开发工作。还有很多与同歩和数据一致性相关问题。 内容来自samhan

解决方法实质就是对Broker进行优化,提升远程日志管理与存储系统 内容来自zvvq,别采集哟

RemoteLogManager:管理远程日志段的生命周期,包含拷贝、清理和获得。

内容来自zvvq,别采集哟

RemoteStorageManager:管理远程日志段操作,包含拷贝、获得和删除。与远程日志段关联元数据包括相关段开始与结束偏移、时间戳、经营者情况快照和管理者纪元检查点的数据。 copyright zvvq

RemoteLogMetadataManager 追踪此元数据,以确保系统了解每个段开始与结束部位,及其数据检索及管理所需的别的重要信息。RemoteLogMetadataManager:管理远程日志段元数据生命周期,具备强一致性。 zvvq

其中RemoteLogManager做为操纵部件,相互连接Broker里的硬盘来查找载入的信息。它也承担调整远程数据。 RemoteStorageManager是进行数据操作的实体,RemoteLogMetadataManager负责元数据。

copyright zvvq

Kafka分层存储中的三个姿势汇总 zvvq.cn

将段拷贝到远程存放 zvvq.cn

假如日志段完毕偏移(段中最终一条消息的偏移)低于分区的last-stable-offset,则认为该日志段有资格拷贝到远程存放。(Last-Stable-Offset (LSO):最大偏移全部之前的信息都被全部同歩团本彻底确定,保证不会丢失数据。)RemoteStorageManager 处理日志段及其关联检索、时间戳、经营者快照和管理者纪元缓存的拷贝。清除远程段 内容来自samhan666

通过专用线程池测算满足条件的段,定期清理远程数据。这与本地日志段异步清除不同。删掉主题时,远程日志段清除是异步完成,不会堵塞已有的删掉操作或重新创建新主题。从远程存放中获得段 zvvq

RemoteLogManager 根据使用 RemoteLogMetadataManager 查询元数据存储,依据所需的偏移与领导纪元确定目标远程段。它使用 RemoteStorageManager 搜索段里的部位并迅速获得所需的数据。以上就是Kafka 里的分层存储 - Uber 技术博客引言的详细内容,大量请关注其他类似文章! zvvq好,好zvvq