![[Pasted image 20231126192023.png]] 不考虑多副本情况,一个分区对应1个日志,为了防止日志过大,kafka引入了日志分段的概念,每个LogSegment对应磁盘上的一个日志文件和两个索引文件(偏移量和时间戳)。 Log 中追加消息时是顺序写入的,只有最后一个 LogSegment 才能执行写入操作,在此之前所有的 LogSegment 都不能写入数据。为了方便描述,我们将最后 LogSegment 称为activeSegment ”,即表示当前活跃的日志分段。随着消息的不断写入,当 activeSegment 满 足一定的条件时,就需要创建新的 activeSegment ,之后追加的消息将写入新的activeSegment # 一、消息格式 ![[Pasted image 20231126192854.png]]