美文网首页
(4)kafka存储机制

(4)kafka存储机制

作者: hedgehog1112 | 来源:发表于2021-02-26 22:22 被阅读0次

概要:1、topic中partition存储分布  

2、partiton中文件存储方式

3、partiton中segment文件存储结构:组成、命名、index log关系、msg组成

4、在partition中怎样通过offset查找message:先找segment,在找msg

5、实际执行效果(读少,批量定期写多,和msg设计有关)

总结 Kafka高效文件存储设计特点:

1、topic中parition大文件分成多个小文件,easy定期删除消费完文件,降低磁盘占用

2、索引信息,高速定位message和确定response最大大小

3、index元数据所有映射到memory,避免segment file的IO磁盘

4、稀疏索引降低index文件元数据占空间

前复习概念

Broker:消息处理结点,一个Kafka节点就是一个broker多个broker组成Kafka集群

Topic:一类消息,比如page view日志、click日志等都能够以topic的形式存在。Kafka集群能够同一时候负责多个topic的分发。

Partition:多segment组成有序队列。一个topic多个partition,每个partition

Segment:partition物理上由

offset:partition中消息连续序列号

一、topic中partition存储分布

如仅一个broker。xxx/message-folder为数据文件存储根文件夹,在Kafka broker中server.properties文件配置(參数log.dirs=xxx/message-folder)。

同一topic下多个不同partition,每个partition为一个文件夹,topic名+有序序号,0开始

2个topic名为report_push、launch_info,  partitions数量都为4,存储路径和文件夹规则为:

二、partiton中文件存储方式

1、每个partion平均分到,多个大小相等segment(段)里

2、但segment file消息数量不一定相等,方便old segment file高速被删除(默认每一个文件1G)

3、每个partiton顺序读写即可。segment生命周期由服务端配置决定,方便高速删除,提高磁盘利用率

三、segment文件存储结构

1、index file和data file成对组成,后缀”.index”和“.log”

2、命名规则:partion第一个segment从0开始,每个名称为上一个segment文件最后消息offset值(最大为64位long,19位,没有用0填)

如下:topicXXX包括1 partition,每个segment 500MB,producer向broker写入大量数据:

3、index<—->data file相应关系:

1)索引文件:存大量元数据,指向相应数据文件message物理偏移地址

2)数据文件:存大量消息

例:数据3, 497,表示第3个message(全局partiton表示第368772个message)、偏移地址497

4、消息结构:

CRC32:用crc32校验message

magic:Kafka服务程序协议版本号

attributes:独立版本号、或标识压缩类型、或编码类型

K byte key 可选

value bytes payload:实际消息数据

四、partition怎样通过offset找message

读offset=368776 message,2个步骤查找

1、查找segment file(以起始排序,依据offset 二分查找)

上述为例00000000000000000000.index表示开始,offset为0.第二个00000000000000368769.index偏移量为368770 = 368769 + 1.相同,第三个文件00000000000000737337.index偏移量为737338=737337 + 1,依次类推。

    368776定位到00000000000000368769.index|log

2、通过segment file查找message

    通过00000000000000368769.log顺序查找直到offset=368776为止

优点:稀疏索引,降低索引文件大小:通过mmap直接内存操作,稀疏索引为每个message设置元数据指针,比稠密索引省空间,但查找消耗时间

五、实际执行效果

Kafka集群:由2台虚拟机组成

cpu:4核    物理内存:8GB    网卡:千兆网卡    jvm heap: 4GB

大量读磁盘少主要是定期批量写磁盘操作,因此操作磁盘非常高效。跟读写message设计相关:

1、写message:1)消息从java堆转入page cache(即物理内存),2)page cache异步刷盘

2、读message:1)page cache转入socket发出    2)page cache没找到,磁盘IO Load到page cache, 从socket发出

https://www.cnblogs.com/cynchanpin/p/7339537.html

相关文章

  • (4)kafka存储机制

    概要:1、topic中partition存储分布 2、partiton中文件存储方式 3、partiton中seg...

  • Kafka文件存储机制

    Kafka文件存储机制需要从以下4个步骤进行分析 (1) topic中partition存储分布(2) parti...

  • Kafka - 存储和索引

    Kafka文件存储机制那些事 kafka分区、分段、稀疏索引实现高性能查询 kafka log文件格式

  • kafka文件存储机制

    一,kafka简介 Kafka最初由Linkedin公司开发的分布式、分区的、多副本的、多订阅者的消息系统。它...

  • Kafka文件存储机制

    笔记来源于尚硅谷视频课程 在server.properties文件中配置了log.dir属性,该目录存储日志文件 ...

  • kafka手记

    参考 Kafka文件存储机制那些事 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)zookee...

  • 【kafka】kafka文件存储、删除机制

    课程分为四部分:主体技术讲解、外部系统集成、生产调优手册、源码解析。基于最新稳定版本Kafka3.x,加入最新的K...

  • Kafka的存储机制以及可靠性

    一、kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还...

  • 2. 三天掌握kafka中章—kafka文件存储解密

    1. kafka文件存储机制   Kafka中发布订阅的对象是topic,我们可以为每类数据创建一个topic,P...

  • kafka文件存储机制------验证

    前言 本文是对Kafka文件存储机制那些事的简单验证 knowledge topic - partition每一个...

网友评论

      本文标题:(4)kafka存储机制

      本文链接:https://www.haomeiwen.com/subject/hzcvfltx.html