00:00
那么咱们现在呢,在这里啊,我要去先去思考一个问题什么呢?就是我现在手动提交偏移量,那么如果手动提交偏移量的话,那首先第一个设置,这个设置咱们前面好像设置了啊,在哪呢?在我的工具类里边是不是有一个卡不卡U,然后其中呢,这有个对enable auto to commit,咱们是不是给这个有false了,就是不让它自动提交了这个东西呢?咱们手动提交对吧?那么手动提交大家想一想啊,那你是不是得把这个偏量找一个地方存起来啊,比如说哎,我现在这里边有ABC的这卡卡里数据,然后接着呢,它这里边是吧,原来是012是吧,然后我现在呢,我下次再谈的话,我应该从我们这个二后边,比如说三开始,那我是不是应该把它记一下呀,比如说每一个topic,比如topic a,它里边的每一个分区对吧,然后偏移量,那我现在已经消费到我这二了,你再消费从咱三开始,你是要找个地方把这东西存起来,对吧?那么如果存的话,那你说我往哪存呢?手动提交偏移量,那你把这个偏移量你要提交到哪,你要在哪保存起来。
01:05
你得找一地把它存起来,在哪存呢?尾部在哪里边?维在什么地方数据库,数据库肯定不太靠谱,因为咱们现在大数据往数据库里面搜地方放,肯定不太靠谱对吧,那么是就可以选red呀,对吧,其实你看我想一想啊,在这里什么呢?我现在啊要从哪一个主题中来拿数据,主题里边是不是有一个分区呀,对吧,我现在呢,从哪一个主题的哪一分区对要来拿数据,然后我是谁对吧?那我肯定是我某一个消费者组吧,对吧,消费者组然后呢,那你现在消费完之后,这个偏移量是多少对吧?这个偏移量对是多少,像这信息呢,那你肯定要给我找地方存起来,对吧?那么往哪存呢?那我们分析可以往我们这个RA来存一下啊,往ready来存一下,那么如果往ready存的话,同学们,这个这个数据类型选谁呢?
02:07
对吧,你是不是得把咱们当前的每一个主题对吧,然后它所对应的对吧,我们这个偏音量都给存起来,那你说他们几个怎么组合呢?同学们怎么组合合适啊,你们觉得咱们现在这个主题怎么组合合适?你说我现在在读的时候,每一个消费者组它对应的一个我们些偏量是不是不太一样,所以说呢,我在产询的时候,或者在保存的时候,肯定的得用消费者组,是不是得做几个区分呀,对吧?那么同时呢,我在消费的时候,我是不是按照主题消费的呀,所以说呢,那咱们现在在这里,那肯定可以这样对吧,我当前呢,存的是我们的opposite对吧,Outside,然后哪一个主题的它这这这个这个这个你可以把这topic给我拿过来,然后接下来你的消费者组是什么呢?对吧,就是YD对吧,这个可以什么呀,这个可以作为我们的K对吧,这作为K,然后接下来那么咱们的K完了之后呢,那关键是我这个Y就是什么,我的类型是什么对吧?那你想一想,我在这里边这是K,那我在这里面存的是不是应该是哪一个分区,它的偏移量到哪了呀。
03:16
那你说咱们用什么类型合适呢?就是我现在在咱们这里边啊,这是我的K,然后对应的那我的值我要保存什么呢?哪一个分区我已经消费到哪了,它的偏移量多少。那你说我现在用什么来合适呢?是不是哈希呀,对吧?那么也就是说我现在啊K是他,然后接下来那么咱们这value那应该是什么?应该是我们这里是不是有一个fair的对吧?Failed这个fail的呢,它对应的是我们现在partition啊partition啊把这个ID吧,对吧,或partition也可以对,然后接下来那么还有一个什么呢?还有一个VALUE6值对吧?那么这个value呢,其实就是我们偏移量outside对吧?这个呢,其实就是我们偏移量对吧,这个也叫和上面重复了,这个呢,叫我这个偏移量啊,这个偏移量好,那这样的话,大家想一想,我们现在在存的时候,那我可以呢,以哈希的形式来把咱们偏移量数据呢给存起来,存的是什么?存的是我哪一个主题对吧?然后哪一个消费者组,然后它对应的我们这个分区,它的偏移量到哪了,对吧,那么等下一次我这个消费者组啊,我再去把这个消费的时候,那我是不是就从他red去找了呀。
04:33
都要去找了,那如果没找到怎么办呢?如果没找到,咱们这里设置了,同学们如果没找到的话,在咱们这里边,它默认的消费方式从哪是不是有一个叫这个latest,对如果没找到的话,那最新的来呗,但如果说有的话,那这个时候我现在呢,就按照我现在他的偏量位置开始消费了。对吧,按是我这个偏移量位置开始消费好了,这是关于我们现在呢它的一个选型对吧?偏移量保存在哪对吧,0.9之前保存到我们这个这个这个consumer,然后outside这主题里边对吧?但是呢,那我们现在在这里,我们呀应该对换一个地方,因为你不能说我现在00.9刚从我们这个这个主keep文给拿出来,然后你现在呢直接往回保存对吧,所以说呢,我们这里选red对选red,那么如果选red的话,大家到大概它的一个这个执行流程什么样子的,咱们来看一看同学们对吧?首先呢,那我们在这里对吧分析了,当你现在呢,要从卡卡里边来消费数据的时候,那我得先知道我应该从什么位置开始消费,这是卡卡里的消息,比如这个01234是什么呢?是我的一个偏移量,上面呢,是我这个消息对吧,那我应该从哪开始消费呢?那么咱们是不是得到里面去找偏移量到哪了呀?所以说呢,在咱们这里边,那么你应该从RA里边来取吧,看一看对吧。
05:54
那么根据什么取呢?我会根据你当前消费的topic这个主题,以及呢,你这个消费者组,然后到这里去找一下,看一看有没有对应的偏移量这个位置信息,然后接下来那我如果拿到的话,那我会找,诶零号分区你的偏移量到哪了,一号分区你的偏移量到哪了,对吧?然后接下来根据我现在呢,它的偏移量位置我读到了,然后干什么呢?到我们的卡卡呀,它指定的位置去消费。
06:21
对,就是我现在在这里,我到底从哪拿拿的数据啊,对吧,你可以从ready里边把这个到底从哪拿数据这个位置给拿到,拿到之后呢,那咱们可以到卡不卡,那你指定位置开始消费数据,对吧?然后接下来那么消费完数据之后呢,大家注意看,把这数据读到,那么读到之后呢,那么咱们可以从我当前读到数据里边来获取到,对吧?你这个消费到哪了?比如说啊,我现在从这里读啊,读到什么呢?读到我当前零号分区对吧?然后呢,它的一个索引是三,那如果零二分析索引者三是不是相当于到这儿了呀?那咱们再去消费的时候,大家大家想想前面这些东西,我说不要了,这个人家从已经消费到三了,那你是不是直接把它给我拿过来就行了呀,咱们从指定的这个位置开始消费,这样就行,然后你消费的时候,你肯定可以知道咱们现在你到哪结束啊,比如说我现在一个采集周期对吧,五秒钟从卡卡里拿了我们现1000条数据,那么这一条数据执行完之后,这个片量到哪了,那你一定可以知道对吧,然后接下来,那么你把这数据拿到之后呢,那么咱们可以。
07:22
可以对它做一些注意啊,对卡卡数据啊,做一些我们的清洗啊过滤啊,就像咱们上午去写这些操作,然后接下来那么注意啊,你的结束点,你最终你是不是要给red保存回去啊,对吧,那么怎么来做呢?对吧,在这里把这个数据把ES保存,最终咱们呢,要把咱们这个偏移量结束点给咱们这个re保存过去。啊,把这些东西给他保存过去,大概呢,是这样的一个流程,啊,大概是这样的流程。关于我们现在它的一个精准一次性消费对吧,它的一个这个思路是吧,大概这样的,也就说我们接下来要写代码了,写代码干什么呢?首先第一个对吧,我们现在要去把这个对吧,这个手动维护偏移量对吧,那这个事呢,做一下对吧,手动维护偏量,其实两个操作,同学们一个是不是从RA里边读,另外一个是往ready写吧,对吧,那么咱们今天呢,把这个从RA里边来读对吧,这个偏量对吧,来完成一下,稍微休息一会对吧,稍休息一下。
我来说两句