温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,上节课我们把整个这个消费者组的一个工作流程啊,都已经做完了,那么他消费完数据之后,其实他还有一件事没有做,就是提交offet,只不过呢,默认呢,我们是采用这个自动的进行offet的一个提交是吧?诶每五秒钟提交一次,那么如果是手动提交offet,那它又应该怎么走这个源码呢?那下面来分析一下啊,那这时候呢,我们就不走这个系统这里了哈。那系统这个呢,没有手动提交对应的这个案例哈,那我们按我们自己的这个给他点一点啊,那首先我们来到这个手动提交这里面第一个就是对应的是什么,诶叫同步提交,那同步提交这个opposite怎么提交呢?点。见见。进到这里面之后,哎,他由谁来帮我们提交呢?由这个coordinator他来帮我们提交,对吧,还记得吗?哎,他要找到这个coin coinator跟对应的服务端的C进行一个通讯提交,Off。这个coordinator调用这个commit啊同步。
01:00
走。同步之后继续往下看,看什么呢?看这块儿,它是一个do while循环,只要时间没有超时,那他在这里面干什么事呢?看这个。叫send off outside commit request,就是发送提交off outside这个请求啊,然后之后呢,Client点是不是拉取对应的这个提交的一个结果呀,啊这种代码呢,我们已经看过了啊,现在这块呢,由于我没有没有办法写这个注释啊,这是大家知道啊,这个呢就是发送这个提交请求,这块呢,就是哎这个获取这个结果,那它是在一个do外循环里面,比如说同步提交的方式就是死磕,直到提交成功为止,是吧啊。那现在这个是手动提交,那我们先来看一下这个异步提交这个。异步提交点击进来,进进进到这里面仍然是调用这个coordinator.commit oppositeet也说异步,那异步怎么提交的呢?进来之后,那首先看下这块说if coordinator,安诺,如果说没有这个coinator。
02:00
那吧,那如果是true的话,那就说明真的没有,那没有加一个反是不是就是false啊,也就说有啊,那这里面的这个逻辑是什么呢?也就说如果说有coordinator的话,那我们就进到这里面进行判断,比如说进来。进来之后,那宽呢,就是send的这个off commit请求啊,仍然是发送提交这个请求,提交请求之后是返回一个结果呢,那这个结果呀,他注册了一个监听,比如说他跟同步提交不一样,同步提交一直跟他等着时刻啊,一直读外循环,那么他下面呢,是注册了一个监听,哎,等待对方返回的结果。对吧,哎,如果提交成功返回on,如果提交失败的话,呃,返回这个失败啊就OK了,那下面呢,哎,对这个ET进行相关的一个处理啊就行了啊,这是这个同步提交和异步提交的一个不同点啊,行稍微了解一下。
我来说两句