可以理解Topic是一个类别的名称 ,同类消息发送到同一个Topic下面。对于每一个Topic ,下面可以有多个分区(Partition)日志文件:
Partition是一个有序的message序列 ,这些message按顺序添加到一个叫做commit log的文件中。每个partition中的 消息都有一个唯一的编号 ,称之为offset,用来唯一标示某个分区中的message。 每个partition ,都对应一个commit log文件。一个partition中的message的offset都是唯一的 ,但是不同的partition 中的message的offset可能是相同的。
每个consumer是基于自己在commit log中的消费进度(offset)来进行工作的。在kafka中 ,消费offset由consumer自 己来维护;一般情况下我们按照顺序逐条消费commit log中的消息 ,当然我可以通过指定offset来重复消费某些消息 , 或者跳过某些消息。
查看topic相关信息
leader节点负责给定partition的所有读写请求。
replicas 表示某个partition在哪几个broker上存在备份。不管这个几点是不是”leader“ ,甚至这个节点挂了 ,也会列出。
isr 是replicas的一个子集 ,它只列出当前还存活着的 ,并且已同步备份了该partition的节点。
消息日志文件主要存放在分区文件夹里的以log结尾的日志文件里