00:00
好,然后我们讲一点其他的一些知识点,就是说呃,之前提过,如果说你要想重复消费某一个。他的数据。怎么做?两种方式对吧,第一个。新建一个组对吧?啊,就放了一个组的一个消费者,第二个是那个就是低级API,我来指定他一个奥赛吧,啊指定off这是可以的,那新建组的时候你要注意啊,是要额外加一个参数的。加这个加一个属性,因为默认的他是那个拉的,就是说来我换一个啊,来一个这个随便来一个吧什么。随随便随便敲的,随便敲的这个组肯定不存在,如果说我把这个你看啊,我把它干掉。这个属性不加来我走一下。
01:04
他就在这儿了。这个组在这儿吧。它并没有数据打印出来,其实我这个SECOND2SECOND这个,那我还是second,就是它的一个主题还是三,这里边是有很多数据的吧,但是它消费不到,因为它默认的就是拉最大的值,那你要怎么调一下呢?来再来随便随随便写几个那个组随便写一个组,然后把这个打开,让他自动来。重置这个什么ofetle,那你要注意啊,这个重置etle不是说你刚才那个值有了,它这个地方进去看一眼啊。它什么意思呢?如果说当你要用这个的时候,当什么时候呢?当没有初始化offet在这个卡夫卡,或者说它当前的offet不存在等等这些内容的时候,哎,它这个属性它才会生效,它才会生效,它给你重置,重置什么呢?默认的,它默认的是这个。
02:04
拉就最大值。能懂这意思吧,就从就就是读的是最新的数据,那你要给他制成什么。Al list al list就最早的最小的那条数据,那为什么不是叫俄list,为什么不是叫零呢?为什么官方文档里面不是叫零呢?想一想,结合前面的知识,看能不能想到。为什么叫,为什么不叫零呢?他最早的不是零吗?不是零吗?注意卡夫卡里面存数据是不是有一个七天什么一个G啊。它删除的是从小的开始,删除最最老的数据,肯定offet最最小嘛,对吧,有可能过了七天之后,你这里面数据啊,它offet不是从零开始的,有可能从1000开始了,最小的是1000了,这有可能吧,因为他认为前面数据全部过时了,就删了。
03:06
所以说这个地方不叫离,不叫离。当然我们。昨天才讲那个卡不卡对吧,所以数据不可能超过七天,而且它的一个数据量也不可能超过一个G是不是啊,所以这个当前没有数据删除,那这个俄就类似于我们看到的数,结果呢,就是从零开始消费的啊,从零开始消费的是这样的。啊,所以说它叫al list,这个al list指的是你卡夫卡里边关于这个topic,以及这个party什么最小的那个offetle。啊,也就是最早的,也就最小的啊,它就是按顺序来的,对吧,按顺序来的,那我们看一下这个组不在,然后呢,我们a list啊,就设为honest来消费一下。看跟刚才不一样吗?刚才是不是没有数据啊,现在能消费到具体的数据了吧,啊就是因为你要把这个赛智为其实你这个类比下那个什么杠杠for beginning。
04:03
一个加杠杠,Beginning,一个不加。对吧,啊,就这这回来了啊这回来了,因为那个你在控制台消费者,他每一次你启动消费者的时候,他都随机生成一个号,就是说你控制台起的消费者,每一次起他都不属于同一个组,能懂这个意思吧。啊不说,除非你加了什么consumer.consumer加了这个配置文件,那你每次是同一个组,要不然他都给你随机串一个数字进去吧,啊串一个数字进去,这第一个如果说你要重复消费的话啊,你换组还不行,你还要加一个这个。配置加一个配置。啊,其实还可以这样做来,因为我们刚才写这个DJ的时候。重要的这后面还是这样写啊,后面你们在公司当中应用的时候还是这样写,但是现在呢,我们如果说单纯的为了什么。重复消费,你可以用高级API来做了,高级API来做你怎么做呢,这样。
05:01
你这边不是订阅什么,这个是什么,这个是producer对吧,来来到这个。那假如说我把这个关掉,而且就算不关也无所谓吧,你这个组是不是刚才我们已经消费过了呀,它里边不可能说再给你从头消费吧,那怎么来呢?是这样。这个东西订阅换一个换成这种方式。然后。什么意思啊?就之前那个哈多的时候,是不是也遇到过这种方法。叫定位读取某一个快的文件是吧,是调用这个这个方法来将它的一个什么偏移量移到什么128兆那个位置还有印象吗?哎,这个也一样。这个四个方法啊,就是以某一个topic,某一个分区的off,当前我们肯定三个分区都是最大值了吧,来看一下正常的,如果说我们还是刚才那样,把刚才那个那个代码直接重新启动的时候,它没有数据吧。
06:08
对,因为他消费完了,他opposite是最大值了,那你看一下这个。照样能消费到,而且是从而且全都是零号分区的,看见没。全部都是零号分区的啊,全部都是零号分区的数据,因为我们这个地方写了,我就要消费零号分区的。指定,而且我写的是off,这个地方还可以传一个off,就是说你可以消费零号分区,从哪个可以消费。Off可以消费,但是这个你没有办法自己维护这个offet就说你只能重置,你没办法把它那个offet给它拿出来,你要拿出来的话,还得用之前我们讲的那个什么symbol consumer去发送一个拿topic me data的一个请求,去拿那个奥赛。拿到赛,但是单纯的如果你想要重置什么。它这个off用高级API就可以做,用高级API就可以做好,这是第二个点,要注意一下第三个。
07:05
大家就没有人想看那个下划线,下划线consumer杠那个里面数据吗?那也是一个。有人尝试过看吗?就说用那个控制台这个消费者去读。没有人尝试看对吧,其实你用正常的方式读不出来了。读出来的,你得这样做,首先你在那个consumer点,它不是有一个consumer的配置文件吗?把这个属性给加上。把这个属性给加上,而且要分发,分发一下,然后启动。这个命令。就是连从kable,然后要他因为之前那个不能行的,是因为它要有一个杠杠for。刚刚分发的这个类来指定来我们看一下,把这个执行一下,因为我已经把这个加上了,分发过了,或者说你看一眼吧,就在这啊,我就在这后面加了一个,加了一个找到保存,保存了,然后分发了,分发了这样的,然后把这个拿一下。
08:07
看到C这个从beginning开始的话,数据就比较大是吧?呃,我把beginning除掉去掉可以吧,哎去掉去掉之后呢,我们启动一个消费者,然后来消费吧,因为消费者消费的时候是不是要把它那个off给它。传给他呀,对吧,等一下。好,这样就启动了。我没有从那个B,我那个消费者还是开的吗。或者说我开一个消费者来看一下,诶这边消费者是开的是吧。DDDD,这个嗯,我重开一个消费者吧。当前的关掉。关掉之后呢,我们还用这个,然后我们还是看。这个消费者。因为我们这个正好有这个数据对吧,Ddd啊。保存一下,保存一下,然后把这个开一下。
09:08
这边启动了,但是看着是没有什么数据来吧,但是你想想看它那个轮询操作是不是在做。他还是会去获取吧,只不过说没有获取到数据,没有获取到数据OK。来看一下,你看这数据在。在更新吧,他一直往里边写数据,但是写的数据你看这块。是不是关于这个组。关于什么second这个TOPIC0123个分区啊,然后它这个off每三七十五三。这个指的就是当前它里边保存了一个off,保存了一个,如果说你开一个什么来看一下,我如果说这边开一个生产者,把生产者启一下,就是说往这个零号分区里边塞一点数据,对吧?因为这个生产者当前是往零号分区还是加了什么呢。
10:01
自定义分区的往零号分区那里分一点数据。把这个往下拉一点吧,这边又C的一点数据,你看这边那个变成85了吧,因为我们C了十条数据对吧,刚才是75,现在变成85了,哎,它实时的都去跟这个进行交互,做一个相应的一个更新的啊,做一个更新的啊,100毫秒一次,100毫秒一次就获取那个值吧。100毫秒一次这样的。他提交过来应该是一秒提交一次是吧,一秒把这个off提交一次,所以说这边的一个数据一个更新呢,你会看到一秒他会刷一次,一秒刷一次,而且保存的。Ddd是谁啊?是组ID吧,跟你那个consumer没有任何关系吧,是组,也就是说你看啊,每一个topic,还有每个topic底下的一个part,它这个东西唯一确定一个什么,这三个东西唯一确定一个。Off赛,也就是说它维护的呢,是针对于某一个topic,某一个分区来维护的。
11:08
而且是一个一个组,有一个一个组一个,那所以说这个地方也能体现,那你一个组里边不同的一个消费者能够同时。消费一个爬山的数据吗?那你就乱了对吧,那你组里边不乱了吗?那你同时去读这个。就是说你两个人同时拿到这个三,然后去消费啊,假如说他这里边已经有十条数据了,拿到三,然后你每个人呢,都消费了七条数据,或者说有的一个人消费了八条,就是说他里边是一,他前面由于网络阻塞,他可能消费了七条,你接下来往里面写的时候。一个人写11个人写11,他到底听谁的,这就不行了,所以说它针对于同一个盘金线,它不可能让同一个组里边啊。多个消费者同时消费的,因为他只维护了一个,一个组里面他只维护了一个。一个组里边只维护了一个啊,这块的一个东西啊,到时候这块发给大家,或者说你网上搜一下吧,如何查看那个。
12:08
下划线那个就就这个,就这个主题里边数据比较多一堆啊,你找一下就行了啊,下就行了啊,然后核心的就是刚才所讲的两个第一个把这个都关了。第一个你要重复消费数据,不是说你换简单的换一个组就可以了。对吧,哎,你要把它置为honest,因为它默认的,如果说你这里面没有关于这个总的一个,它是直接把你制成最大的就拉的那个值的啊,直接制成最大的那个值,你要加一个这个属性,加一个这个属性OK,然后第二个用高级API。来重复消费对吧,不换组的情况下如何重复消费?啊,刚才是换组如何重复消费,这是不换组如何重复消费啊,这是第二个讲的第二个点,第三个就是,哎,我们查看一下。这个他自己维护的这offet里边,因为我们看了什么,如keep里边维护的这个offet吧,啊,我们直接进客户端能看到的,但是这个地方呢,之前没有大家家带大家来看啊,这块你也可以看一下查看到它其实跟从keep里边维护的东西是不是一样的呀。
13:13
UK里边是不是把这个形成了多极路径啊,对吧,然后你就get了一个值,这个地方呢,它就唯一的一个标识啊,唯一的一个标识这样的。没那个标识。
我来说两句