00:03
好,下面我们来看这个offset啊,这个用途,这个用途啊,我们前面也给大家说过了啊,你看这说的什么。那么消费者啊,是如何从最开始,从最开始啊持续消费消息的。啊,其实我们消费者啊,要消费的第一条消息,第一条消息其实位置是用户自己啊,通过通过通过这个啊,就我们自己写代码的时候啊,通过它指定的,过这些方法指定的。那么启动以后呢,需要消费的第一条消息的起始位置啊,常用的有三种。其实我们这儿就这三种是吧,常量啊是常量啊,这是什么没矩别型的常量。呃,这里面这么多啊。一共六种,六种里边这三种都是过时的,我们不用管它。呃,剩下这三种,你看这是什么?一看就知道啊,Last of。
01:03
这最后一条就我们Q啊,我们Q的最后一条。从Q的最后一条开始。这是从。Q的第一条开始。这个。嗯。呃,简单写一下吧,这个。嗯。嗯。Last。Of。Set。是吧,就是呃,从。从从从。成。Q。呃,等呃。这个你注意啊,这这个这个最后一条啊,这个最后一条是指的什么,是当前。
02:00
你注意是当前的最后一条从Q的,因为Q里边数据是一直在变的。所以是从Q的当前啊,最后一。一条消息开始。消费他和那个第一条还不一样,第一条肯定就是固定死的,第一条就是第一条。呃。First。是吧?从。的第一条消息开始。From。这儿啊,你注意这儿。嗯。STEM。Time,这个time stamp啊呃。
03:02
我们这儿指定的话,你你除了通过它from where指定这个以外,还需要再通过呃一个语句。啊,就是。指定那个具体的时间啊,这是从呃,从哪从呃。指定的。具体。时间。说。嗯。从指定的具体时间戳。这个这个这个。位置吧,呃。消息。开始。呃。这个。具体时间。圈啊。是通过啊,另外一个。语句。一个。
04:00
的语句。啊,它肯定是set,它它是这样啊,这个这个语句是consumer点。呃,这个我们。Ume。STEM stamp STEM。是。Time没错啊STEM,然后啊,你这里边写上那个时间,这个时间要求是什么,比如说啊啊二。021是吧,2021,这是呃年,然后月,比如说零七。嗯,日001是吧,然后我们。早上啊,早上这个这个这个。零八。啊,零零。这是年月日十分秒啊。
05:01
年月日十,呃十分没有秒,年月日十分啊就可以了,通过它指定啊。通过另外一个语句指定的啊,就这个就这个语句是吧。啊,这个是句啊,这是这是什么年,嗯,万年。月日。呃,十。三秒有秒秒秒,那肯定得有秒是吧。不是没有秒啊。应该是十分秒,就这吧。就这样一种格式啊,这样一种格式。呃。没写错吧?0108啊,没错。让我们继续看这啊,他说,呃,当消费完一批消息以后啊,Consumer会提交其消费进度offset给brokeer,没问题,我们大家都知道是吧?那ER在接收到消息消费进度以后,会将其更新到那个双层map吧,这就我们刚才说那个双层脉方,双层脉方啊。
06:19
方成map,就这个map,我们我们把这个拷贝一下。不行买啊。这这个map是吧,我们前面因为我们前面说过他。是吧,包括。这。这个双层卖。你知道指的谁啊?啊,写到这个双层map以及哎,就就我们这个文件里边,然后向该consumer进行响应这个响应内容啊大家看一下响应内容包含三项数据,这就是它为什么能够持续一直。
07:04
消费。当前消费队列的最小。Offset,这就是它的内容啊,然后最大offset。以及下次消费的起始。就你下一次再消费。你就从这个位置啊,你从这个位置开始消费就行了,Next begin of,所以持续消费是谁保证的?是他这保证的。并不是我们啊提交的这个消费进度off,这个消费进度off其实记录它的目的是什么?主就为了re balance。是不是来从这我们就就就呃了解的就很很清楚了啊,这就很清晰了,很清晰了。然后我们看啊,再看这这个了解一下啊,这有个叫从事队列什么意思呢。当我们康Q啊对消的消费出现异常的时候。
08:05
出了出现异常,那些你得重新再消费啊是吧,他怎么就重新消费了呢。啊,它会将发生异常消息的offset啊,提到我们的brokeer里边的从事队列,大家看。在这个里边实际上是有从事队列的。这个你看百分号,Re try100分号。然后s group是他的从事队列。明白吧?会发送到这个从事队列系统,在发生消息消费异常的时候啊,会当前的巴贝创建一个从事队列。就你这次消费啊,他会给你创建一个呃成市队列,然后啊,这个这个。会为当前的topic啊,创建一个充值队列其实也不合适,不仅仅是topic,还有谁消费者组啊,为当前的应该这样写topic at。
09:07
是吧,那这个。这是比较合适的啊,创建一个从容队列,然后对立以它开头啊,然后达到从事时间就可以进行。消费重设,所以这里边儿有一个就是我们大家知道发生异常以后啊,并不是说啊,我重新啊进行一次消费。他是什么?他把这个异常的office他也做了提交,只不过提交到哪呢?提交到我们这个从事队列了。表达了,因为我们之前这个也有啊,你看。也有啊,只不过我没给大家强调是不是在这儿。这是同一个图片啊,是吧?啊,这是这是我们这个关于这个从事啊,这有个从事队列。呃,再然后就是我们赛的同步提交与异务提交,这个我们前面其实给大家也说了,我们在这来看一下啊,就是集群消费模式。
10:12
提交方式有两种,一个是同步提交。是吧,啊同步提交。是吧,同步提交。或者。同步提交。啊,一个是义务提交。同步提交,消费者在消费完一批呃消息以后啊,会向ER提交这些呃消息的offset,然后等待博的成功响应,对吧,你得你得给我响应,如果。在等待超时之前,收到了成功响应,我就会继续消费下一条消息。
11:00
我相信下一下一批的消息对吧,呃,会会继续读取下一批消息进行消费,我们现在就知道你读取下一批下一批。从哪开始啊?从这呀。嗯。我我我们刚刚说的,哎,在在在这儿呢,是不是。我给你给你的APP里边有啊。是吧?哎,如果没有收到响应啊,重新则会重新提交知道获取到响应,而在整个这个过程里边,消费者是阻塞的。它一阻塞就会严重影响了我们消费,消费者的吞吐量。然后异步提交呢,异步提交,消费者在消费完一批消息以后啊,向博克提交ET,但是不需要等待它成功响应,可以继续读取。并啊消费下一批消息。
12:00
会继续独行,并销毁下一批消息。然后这种方啊,这种方呃,提交。嗯,他他他就是说博洛克收到以后,他仍然会。这个对它进行响应啊,然后对它进行响应,只不过呢,他这个不需要等了。是不是他不需要等了?当然这里边儿会有一种机制啊,就你不需要等了,就是我我这边。呃,我这个消息完了,你还没有。然后我提交了,你还没有给我响应的,没有给我响应的,我读。下一次我读哪?我读哪是吧,因为你没有响应我就不知道你。你这个next begin ofet是吧,我我下一次读哪呢?啊,那这时候啊,他。在实际上在我们的。
13:00
这个这个这个broke里边啊,太多了记录了,你注意啊,现在就这个东西啊。大家想想这个东西从哪来的,是我们博客?是我们博传送给传递给我们这个。呃,就是就是就是这这个,所以在我们。博端,这肯定是有记录的,我这次在读的时候直接从博边读就行了。是不是直接从获取到我下一次要获取位置。对吧,要获取那个位置。所以这是我们说这个异步提交啊,异步提交。嗯,我我我想一下啊。则继续。这。从。中啊获取获取谁。
14:00
是不喝喜他。是吧,从中获取这个。哎,你这样就就可以就可以这个这个这个呃,继续消费了,那这个呢。这个是,呃。可能啊,还没有收到。啊。此时啊。呃,会从。Broker都直接获取获取它,因为这个东西肯定是在broker里边的。对吧,直接会场进行消费。OKOK。呃,那么这样的话,我们就把这个offset啊,这个管理,呃。就就就就详细的给大家说过了。
我来说两句