00:00
好,接下来呢,我们来研究一下offset一个维护位置哈,双击打开。首先呢,这里面有这么几种角色,第一个呢是生产者可怕,集群消费者主好,那么生产者会把数据发送到集群当中的leader分区,嗯,一波一波发送。发送完毕之后,消费者主呢开始消费某一个分区的数据,他开始消费。消费的过程当中,诶,会有一个消费的offset,比如说你消费到哪儿了,那这个offset会维护在哪里呢?记住0.9版本以后,那这个consumer的off是维护在系统主题里面,哎,那这个系统主题的名称就是下划线,诶consumer off。啊是放在这里面哈,行,那么说0.9版本以后存在这里,那0.9版本之前,那这个off存在哪里呢?哎,它是存储在对应的叫主keepper当中。那么以前存储在主kper,为什么把它修改到系统主题了呢?原因在哪呢?诶主要的原因啊,是因为你要是每一个消费者都跟主kper进行一个交互,说存储对应的。
01:12
那这样呢,会带来大量网络通讯啊,那这个效率呢比较低下,好那你就记住一点,说我这个奥赛呢,是维护在系统主题里面。那下面呢,我们就来详细的看一下,是不是数据存储在这里面。来拍看一下。那来看一下,首先把这一段话给大家说一下啊,说消费者主题里面采用的是KV的方式进行存储的,那它的K是什么呢?K是消费者主ID,然后加上topic,加上对应的分区号,那Y6值呢,对应的就是opposite。那后边呢,我们在查找的时候是不指定了消费者主的ID,那是不方便我们进行一个查找啊,每隔一段时间啊,卡卡内部呢,就会对这个topic进行一个压缩,哎,这个压缩呢,就是我们存储的那个压缩啊。
02:02
那也就是呢,这个消费者主加上topic加上分区号也是对应的这个K值呢,保留就Y流值这个off是一直被覆盖更新的。那下面我们来详细看一下这个系统主题里面的offset呗。那要想看系统主题的数据,大家思考一下,那是随随便便就能看的吗?哎,不可能,那怎么办呢?哎,默认情况下,它是看不到系统主题里面相关数据的,有哪个参数来管呢?就这参数。这个参数啊,默认它是错,哎,它表示的含义呢,就是不让你去看系统主题里面相关数据。啊,一种保密的策略哈。那行,你要想看的话,那就得把这个值制成false,那我们先来看一下它是不是默认是处。打开官网,哎,官网是最可靠的哈。好,拿到这之后看一下,这里面默认的值呢,就是处表示的含义是不允许你看系统主题里面相关的信息,那下面呢,我们给它制成false。
03:08
在哪个配置文件呢?在这个消费者配置文件当中。来到102。好,那把这个改完,改完之后呢,分发。那这样呢,三台机器啊,就都已经改完了啊,不用重启。现在我的机器啊啊都已经打开了,好吧,那这个分发完毕之后已经生效了,那下面来干一个什么事呢?哎,我们来创建一个topic主题,比如说创建一个at股的分区号两个啊,副本书两个啊。呃,新创建一个主题啊,方便我们去观看在这个系统主题里面对应的数据。
04:02
那走。创建。好创建完毕之后,那下面呢,向这个主题里面发送数据。行,那现在呢,我向里面发送数据。Hello喽,发一条,诶没感觉,那下面你是不得启动对应的这个消费者啊,对吧?哎,消费这里面的数据,那行,那我就启动一个消费者来消费艾特硅谷里面对应的数据,那消费的过程当中是不是就会产生对应的offset。我消费到哪了吗?然后把这个ET是会记录在系统的主题里面吗?是这样一个过程吗?好。那么我这里面是消费艾特硅谷,哎,那我这里面指定了一个主ID。叫test,为什么要指定呢?其实这里面呢,是方便我们进行查找,还记得我们这个系统主题,它的key是谁呀?它的key是主ID,加上这个topic,加上分机号,那如果你在命令行的方式没有指定这个主ID,它会给你一个随机值。
05:12
那这样呢,不方便你进行一个查找,那比如说你前面你这个我写成主ID,比如说主ID就是test,那我就是test,然后杠topic,那topic是谁呀,I5嘛,然后之后分区号,那这样多好找。啊,是这个意思啊,那行,那下面呢,我们就来一个消费者。幺四吧。那我这边呢,再发送一些数据啊。三条。好,那现在呢,我已经消费到数据了,是这样吗?消费到数据,那我这个off就会写到对应的系统主题里面,那我如何来查看系统主题里面有没有关于这个test的主相关的一些信息呢?哎,那下面呢,我们想查看,那查看的话,这里面有固定的API啊,比如说我们消费消费人杠杠topic,那这个topic的名称就是系统主题消费者。
06:11
哎,然后杠杠不serve啊,连接上集群,然后杠杠consumer这个,比如说你对应的配置文件,刚才修改的是哪一个呢?哎,是这个下面的它啊然杠杠matter,这是固定的全类名啊,然后呢,杠杠from begin呢,就是从头开始进行消费。这个含义,那下面呢,我们来看一下啊,见证奇迹的时候。来到幺龙三。走。好,你会看到啊,这里面有大量的数据啊,其实一直在刷新啊,因为呢,它在里面不断的去加载对应的数据哈。那加载书记,你看这里面有没有test啊,考验大家眼力的时候了,到了test后面是跟着艾特硅谷,哎,好像一闪而过,你把它KC结束掉。你看。Test艾特硅谷一号分区,Test艾特硅谷零号分区知道吗?然后消费对应的一个数据,那说这里面存储的就是对应的off。
07:11
好,那对应的在面试的过程当中啊,有个别面试官会问,诶,你的这个消费者的opposite维护在什么位置?那这时候怎么答呢?嗯,那就是在0.9版本之前,消费者的offset维护在主keepper当中,那么0.9版本以后,那我们是维护在系统主题当中啊,那就OK了哈。
我来说两句