1,0.8版本之前,kafka offset在zookeeper中表示
image.png2,基础
image.png
1)每个Partition都有自己的Leader。 image.png
2)topic名字最好使用中横线,使用 . 或 _ 可能会与内部topic冲突。Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
3)kafka基于ISR(in-sync Replica
)复制机制,每一个partition都有一个Leader,Leader动态维护ISR。当一个Flower落后Leader太多
,或者一定时间未向Leader发起pull请求,则从ISR中移除。
当ISR中所有的Flower都向Leader发送ACK时,Leader才commit数据告诉客户端写入成功
。
4)每个partition是一个目录,由topic名+序号构成。topic是逻辑概念,partiton是物理概念
5)partition由多个大小相等的segment(段)数据文件(消息数量不一定相等
)组成。segment file由后缀”.index”和“.log”
分别表示为segment索引文件、数据文件。
6)segment文件命名规则:partion全局的第一个segment从0开始,后续每个segment文件名为上一个segment文件最后一条消息的offset值
。数值最大为64位long大小,19位数字字符长度,没有数字用0填充。
7)查看日志文件内容。
bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs-1/my-topic-20190102-0/00000000000000000000.log --print-data-log
网友评论