Kafka中的Offset偏移量+新老版本偏移量位置的改动

我们Kafka中的message,既然是写在XXXXXX.log文件中,不管存了多少数据,只要超过1G大小,就又开启一个新的Log文件存message,文件内部分多个segment分段(可以配置)。

在这里插入图片描述

文件命名就是segment分段的起始位置命名,例如:

第一个segment分段:0000000000.log(包含message0~37)、第二个segment分段0000000038.log(包含message38~75)、第三个segment分段00000000076.log(包含message76~113)… 第N个segment分段0000000369.log (包含message N-37~N),偏移量可以想象是书签,消费者重启后,继续从那一次消费的起点开始读取,例如假如上一次消费者A的偏移量是0000000029,证明消费到了29,掉线了,或者停止服务重启后就从0000000030开始消费,于是通过二分查找,发现30的message还属于segment 1这个分段,于是进入segment 1 继续二分,直到找到message 30。

上例子:
老版本Kafka(0.9以前)都存在ZooKeeper当中,之后的新版本都存在Kafka自带的一个偏移量主题当中:
查看当前Kafka的所有topics:
./kafka-topics.sh --list --zookeeper localhost:2181

在这里插入图片描述

可以看到确实有个偏移量的主题,文件的位置如果不做数据日志与系统日志分离,默认在Kafka内的logs,我的环境重新配置在了/kafka-logs文件夹中:

Kafka中的Offset偏移量+新老版本偏移量位置的改动_第1张图片

0~49,都是用来存消费者偏移量的主题文件。
我们自定义主题也会在这里出现:
./kafka-topics.sh --c

你可能感兴趣的:(数据库,Kafka)