00:00
好,接下来呢,我们来看一下第二张生产者相关的一些调优,那下面呢,我们首先来看一下,哎,卡普卡的一个配置说明哈,呃,它的每一个参数下面呢,都有一个read only啊,Break,还有这个cluster wide啊,这里面对应的含义,我举个例子啊,你打开官网之后,随便找一个参数,你看它下面都有一个这个。比如说更新模式,更新模式有瑞东类啊,还有一些相关其他的,那比如说哎,他有谁呢?有这么几个。这么几个比,就说如果这个参数啊,下面标记的是read only,表示什么含义啊,哎,不是说是只读啊,不允许修改,它是呢,是require a broke restart for update,比如说只有你这个集群重新进行启动的时候,那它才能进行一个更新,那是这样啊,那另一个呢,是这个per broke啊这个呢是含义呢,就是maybe update,动态的for each起broke,也就说不需要启动集群啊,它针对的是每一个broke节点啊,单独的进行一个修改,这么多broke,哎,我改它的,那它呢就立即生效,那还有一个呢,是针对这个集群的,哎,整个集群你这边改完之后一存发,哎整个集群所有的这个值呢,都进行一个动态的修改啊,这个含义呢,要知道啊,别这个看官网的时候,哎,不知道它啥意思,说这个瑞东雷,那是不是以后我不准许修改呀,哎,不是这个意思啊。
01:18
行,那这个说明完之后呢,下面我们来看一下生产者的一些核心配置啊,那给大家讲解的呃,方式呢,是先给大家过一遍,哎,之前讲的这个原理图,然后呢,下面有对应的这个参数,简单给大家快速过一下,由于啊之前我们已经讲过生产者相关的一些信息,那这块再讲的时候呢,肯定是要快一些哈,好,我们双击打开。打开之后还是哎,我们希望呢,把外部的数据啊,通过这个卡法producer发送到卡法集群,那发送过程当中,首先呢,创建一个诶卡法producer。那接下来呢,是调用这个散方法进行一个发送,那当然这个散这块呢,哎,除了它之外还有带回调的,以及呢,同步和异步相关的一个发送,那发送到这个拦截器之后,那这个拦截器啊,哎主要呢是哎机对数据呢进行一个呃加工处理啊,你可以思考一下对吧,生成老师诶把你拦下来之后呢,给你装上点骸骨妊娠丸,然后之后呢,再你往下走啊这样一个过程,那下边呢是蓄列化器,那系列化器啊哎,这里面在开发的环境下,哎,我们可以设置它对应的一个呃K和Y流的一个序列化,而且呢,属于必配项啊,通常我们用的比较多的就是实最类型的一个序列化啊,这个要记住就行了。
02:27
那下面呢,是对应的这个分区器,那分区器呢,当然是非常非常重要的啊,因为它决定了我们的数据啊发送到哪一个分区,那它里面首先可以直接指定对应的这个分区是吧?哎,直接指定的话,那数据就发生到哪一个分区,那还有呢,没有指定,那就按照这个K。那是按照K的哈希构的值对这个分居数,比如说三,哎进行一个球模,哎这样呢,进行一个得到的话,把这些数据应该发送到哪里面去,那还有一个呢,就是默认的没有指定key,也没有指定对应的这个分区,那这数据呢,哎,就是按照这个粘性啊这种方式啊,它随机选一个,一旦选上之后就把它粘住了啊,直到把这个这批数据发满,那这批数据呢,啊,要么就是16K满了,或者呢就是link Ms时间到了啊,那他就开始选择发下批数据啊,这块呢稍微回忆一下。
03:14
那发送过来呢,这个呃,缓冲器大小呢是32兆对吧?哎,32兆啊,这里面每批次数据的大小呢是16K,那记住这里面是不是还有个内存池啊,哎,内存池那数据发过来之后,哎,首先呢,它从内存池里面拿到内存来进行一个分配好,那这里面呢,发送完B数据之后,那这个内存呢,再还回来,还到内存池当中啊这样一个过程。行,那下面呢,由这个三线程啊,帮我们来进行一个发送,那发送的话有条件啊,两个条件,一个呢是这个size达到16K,或者呢是这个link ms4件到那默认的这个是零啊。那下面我们往外进行一个发送,那这里面用到了这个啊,In request,我们的这个参数值啊,那这里面呢,是针对每一个博节点,哎,它都设置了对应的一个这个啊in Fla request一个参数啊,那最多它能缓存几个呢?哎,最多能缓存五个啊这是默认的一个配置,那它的含义呢,就是发送过这些数据之后,你这个请求啊,没有进行应答,哎,那我可以发送下一个,哎再发送下一个,再发送下一个,再发送下一个,哎最多发几个呢?哎,最多发送五个啊这样一个情况好,那这个呢,主要是后面啊涉及到一个乱序的一个处理。
04:22
这边呢,我们把数据发送过来,发送过来之后,这边呢,进行数据的一个同步,对吧?哎,同步同步之后涉及到一个AC的一个应答,那AC呢涉及到零,一和负一,那零呢,在生产环境当中几乎不用啊,它的特点呢,就是生者发生过来数据之后啊,不需要用答继续发继续发啊,那这个呢几乎不用,那还有呢,就是等于一,那就是生产者发生过来数据之后,Leader进行收到,哎,他把数据落盘了,那就可以进行一个应答了啊那之后呢,是这个AK等于这个负一,那这种方式呢,是生产者发送过来数据之后,哎,那这个leader和isr里面所有的follow哎都正常的收到之后,那再进行一个应答,那这个可靠性呢,肯定呢是啊要好很多啊。
05:01
之后呢,来进行一个成功啊,如果成功之后呢,清除掉对应的缓存,同时清掉这个对应的数据啊,OK,如果失败的话呢,进行一个re try啊,进行一个重试啊,直到这个重试成功啊为止,这样一个过程,那这里面涉及到了大量的一些参数啊,那我们来回忆一下,所以哪些参数呢?第一个你首先得连接上对应的集群,那就是boot的server啊,这个必须得配,那之后呢,涉及到了是这个key和value的序列化啊,也就说对应的是这个位置对吧?啊k value6序列化。那下面呢,还有这个八分缓冲期大小呢,32兆,32兆,那这个呢,在生产文件当中,我们可以适当调大,比如说调到64兆。再来一个呢,就是这个Bach size,那默认的是16K,那16K大小呢,是这个值是吧?哎,可以往上调,调到32K,那link Ms啊,它默的是这个零毫秒,那通常生长环境当中,我们一般是配置这个,呃,五到100毫秒,那当然了,也不是说无限的这个往上调,你往上调的话也会导致数据的一个延迟啊,那下面还有一个A,那A呢,对应的就是这个位置。
06:01
哎,对应的这个零,一和负一的一个配置,你要保证数据的完全可靠,那你必须得A设置为负一,那如果你传输的是普通日志的话,一般设置为一就可以了哈,追求的是效率哈,那下面呢,还有一个这个must in flight request,那这个参数呢,哎,默认是无,它需要跟谁配合呢?哎跟这个叫幂等性进行个配合好啊,这两个配合使用,它俩配合使用啊,可以解决掉这个,呃,乱序的问题,你说它俩自动都开启的话,而且这个值小于等于五,那就没问题啊,你不用考虑乱序啊,它自动帮你底层解决,那如果说没有开启幂等性,那你还想解决乱序,那这个值就只能设置为一啊。那还有这个re try这个次数默认呢,是是这个int的最大值,那通常情况下呢,你不想让它一直这个啊,不断的重试的话,一般就设个三次啊或者五次啊就可以了啊啊不用设那么多,那这个呢,是每次re try的这个重试的一个时间间隔啊,那它默认的是这个100毫秒啊,100毫秒这个一般我们不改它。那下边呢,还有一个呢,就是改变这个数据的一个压缩啊,压缩呢可以提高你对应的一个吞吐量,那这个值呢啊,一般情况下啊,我们可以配一下啊,比如说配一下这个snapping啊,提高它对应的一个啊传输速度哈,行,那这就是这个整个这个原理,配合上这些参数,那你未来在生产环境当中,那这些参数呢,嗯嗯,你可以在这里面查啊,虽然说没有必要你说全全记住啊,那至少你得知道有对应的参数来解决什么样的问题的啊,这个呢要知道啊。
07:23
那现在往下看,下面呢,是对应的这个生产者如何来提高吞吐量,那我们之前这都讲过啊,都讲过我就是快速回忆一下,那有这么四个参数,第一个呢是缓冲机大小啊,这个默认32兆,你可以提高到64兆,那by size呢,默认是16K啊,那你可以给它改成啊32K。Link Ms呢,默认是零毫秒,那你可以给他五到100毫秒,还有这个压缩,那压缩的默认是非压缩啊,那你直接给它设置一个啊snap啊,提高它的一个吞吐量啊。那这面呢是数据可靠,那数据可靠啊啊有这么几个条件,第一个条件就必须这个A4啊,它得等于负一,那它的可靠性呢是要高一些,接下来呢,是分区副本必须得大于等于二,还有呢,在isr队列里面,最小的副本数据必须得大于等于二,因为默认的是一啊,默认是一。
08:12
下面是数据重复,这怎么解决啊,数据重复稍微回忆一下,哎,你得采用对应的叫幂等性是吧?哎,还得加上对应的事物,那这个幂等性只能保证单分区单绘画内数据不敌无重啊,你要想完全的这个不敌无重,只能采用这个事物啊这种方式啊。那下面呢,你要想保证数据有序,那只能把这些数据啊,放到一个单分区内部进行一个处理啊,那你要是多分区的话,其实你要有序的话,那你得把每一个分区数据拉过来之后,还得后续进行一个重新排序,那效率呢,还不如直接放到一个分区里面啊,这样效率更高一些啊。啊,还有呢,就是乱序,乱序刚才已经解释了啊,你要想保证数据不乱续啊,那如果是0.10啊之前的版本的话,那你直接把那个in flat设置为一啊,那后面呢,如果你是这个高版本没有开启密等性啊,那你也把这值设成一,这事就结了啊,但是你非得要这个呃,加上密等性啊,那这时候不好意思,那这个值呢,只能小于等于五啊,因为最终它在卡瓦集群里面只给你缓存五个数据的一个原数据,那再多呢,就没有进行一个缓存了啊,所以这里面呢啊,要设置这个小于等于五啊就可以了。
09:19
行,那这些呢,就是整个生产端啊,你涉及到的原理以及对应的这个配置参数一定要记住啊,一定要做到这个心中有图啊,这张图呢,在你脑海当中一定要印下来啊,建议大家呢,反复的多画几遍啊,心中有图不是心中无码是吧,要注意。
我来说两句