kafka日志存储【日志目录】
文件目录布局Kafka 中的消息是以主题为基本单位进行归类的,各个主题在逻辑上相互独立。每个主题又可以分为一个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会根据分区规则被迫加到指定的分区中,分区中的每条消息都会被分配一个唯一的序列号,也就是通常所说的偏移量(offset )。总的来说就是:一个主题(topic)对应多个分区(partition)、一个分
文件目录布局
Kafka 中的消息是以主题为基本单位进行归类的,各个主题在逻辑上相互独立。每个主题又可以分为一个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会根据分区规则被迫加到指定的分区中,分区中的每条消息都会被分配一个唯一的序列号,也就是通常所说的偏移量(offset )。
总的来说就是:
一个主题(topic)对应多个分区(partition)、一个分区对应多个副本(replica)、一个副本对应一个日志(log)、一个日志由多个日志分段(segment)组成。
log在物理上以文件夹的形式存在,segment对应磁盘上的一个日志文件和两个索引文件(.index、.timeindex),以及其它可能的文件(.delete、.cleaned、.swap、.snapshot、.txnindex、.leader-epoch-checkpoint)。
日志文件关系图
Log 中追加消息时是顺序写入的,只有最后一个 LogSegment 才能执行写入操作,在此之前所有的 LogSegment 都不能写入数据。我们将最后 LogSegment 称为"activeSegment",表示当前活跃的日志分段。随着消息的不断写入,当 activeSegment 满足定的条件时,就需要创建新的 activeSegment ,之后追加的消息将写入新的activeSegment。
每 LogSegment 都有一个基准偏移量(64位)baseOffset ,用来表示当前 LogSegment中第一条消息的 offset。日志文件和两个索引文件都是根据基准偏移量( baseOffset )命名的,名称固定为 20 位数字。
创建一个主题topic-demo,查看它分区0下的日志结构:
kafka存储log的根目录下还有5个默认的检查点文件
cleaner-offset-checkpoint
log-start-offset-checkpoint
meta.properties
recovery-point-offset-checkpoint
replication-offset-checkpoint
更多推荐
所有评论(0)