温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,接下来呢,我们来看一下第二章生产者相关源码。那么在看源码之前,你要清楚我们为什么要看源码,在看源码,我们是要了解生产者客户端,他到底都干了哪些事儿。那我们先回忆一下我们之前讲的课程当中,生产者他干了哪些事儿,知道吗,好。双击PPT打开。哎,我们之前说啊,生产者呢,客户端他干的事儿呢,就是把外部数据发送到合法集群。那好,那在发送的过程当中,首先呢,它创建了一个main线程,在main线程当中创建了一个卡巴producer,然后呢,卡巴producer调用了这个散的方法进行发送数据,然后呢,数据会经过拦截器对数据可以进行一个加工,之后呢对数据进行一个K和Y6的序列化,再之后通过分区器把数据发往对应的缓冲区。那么每批次的数据呢,大小呢是16K好。那接下来由这个三线程来帮我们进行一个发送数据,那发送数据呢,是有条件的啊,这里面有两个条件,第一个条件by size,诶如果达到它的上限,比如说16K,那么它就可以发送,或者呢是LMS,它的时间到了,那也可以进行一个发送数据,OK。
01:17
那么在发送数据的时候,你这边是对应的服务端,那这边呢是对应的客户端,那么这边就得创建客户端跟服务端进行通讯,那这里面有一个network client,那network client里面诶对应的参数有一个叫in flight request,它呢是默认帮我们缓存最多五个请求啊,就这五个请求。那下面通过调用这个slide来帮我们进行发送数据,把数据呢,一批次一批次的发送过去。那发送过去之后啊,涉及到了一个a cck4的一个应答,那这里面有三种级别,零,一和负一,那零的特点呢,就是生产者发送过去数据之后,诶对方呢,不需要应答,直接就可以发送下一波数据,那么ACK呢等于一,就是生产者发送过来的数据之后,Leader收到数据之后并落盘就可以进行一个应答,那么AC等于负一啊或者二,它的特点就是生产者发送过来的数据,Leader和IL队列里面所有的附哎都收到数据之后来进行一个应答,哎可靠性的相对说要高一些。
02:22
那那这边发送进行应答之后,那如果应答的是成功,那这边清对应的请求,以及呢,清理对应的数据。那如果是失败呢,失败的话呢,这面就进行一个重试,那么重试的次数啊,默认的是int的最大值啊,一直时刻啊,直到发送成功为止,好,那这就是整个这个生产者发送的一个流程,那下面我们就来详细的看一下源码,看一下它底层是不是这么找的,来来验证一下对应的功能好吧。
我来说两句