00:00
好,接下来呢,我们来看一下生产环境当中非常重要的一个内容,就是生产者如何来提高吞吐量。那好,我们来双击淘汰。那打开它之前,我们来看一下,这是整个生产者到这个博客之间发送的流程,那好,那在这个期间,我如何来提高我这个数据的一个发送能力。啊,那好,那我们这个过程当中怎么来调呢。啊,这。首先啊,在我们左侧这地方呢,是宋宋老师家的一个仓库,那这个仓库大小呢,是32兆啊,这里面存放的都是大量的骸骨人石丸,那相当于是哪一块呢?是不是相当于是这块。诶,我的缓冲区大桥默认的是32兆,那接下来哎,宋老师呢,希望把这波海狗妊娠纹拉到自己家仓库,所谓的自己家仓库就是卡卡集群。那它在拉的过程当中用什么拉呢?哎,用火车皮拉,一火车皮一火车皮的拉,送这个海之丸。
01:04
那他拉这个海狗人参丸,我一次拉多少呢?大师考。还记得这里面这里个对应的参数吗?另一个MS。那个MS默认值是零毫秒,那只要有数据,我这边就开始了。那就相当于你过来一下,我就拉走一下。哎,零延迟,那你说还有还有这个批次大小呢,批次大小在这个零毫秒面前,那么是不是不起作用啊,哎,除非你把这个零毫秒这个时间加长,那它可以起作用啊,所以说默认的情况下,这个卡布卡的处理速度是你这边来一箱,我拉走一箱,一活是可以拉走。那这个效率高不高呢?是不是相对来说要慢一些,那么我们如何来提高我们拉取的这个数据的能力呢?哎,好,那这里面诞生了两个参数,一个呢是这个BA size,另一个是l ma。那另外msm默认是零毫秒,跟上面这个是一样的是吧?啊,那这里面如果我把这个零毫秒改成五到十毫秒的时候,那么我们是不是就有可能达到这个批次大小16K,比如说一批次啊,我拉取16K。
02:12
那比你这一次拉。一箱是不是要效率高多了,好啊,这是这个,那这两个参数呢,必须得配合使用,人说那海哥,那你这个,那我就把这个延迟时间多加大一点呗,啊,我能不能加到这一秒钟甚至更长。大家想,虽然说那你这个加大了之后,我这个批次大小,我也可以把它增大,对不对,比如说我增加到32K,那么我这个每批次拉起的数据量大了,但是带来的问题是什么?有好处就有坏处,带来的坏处就是你这批次数据是不是延迟就提高了,你看你第一箱数据过来了。那我要等一秒钟之后才能开车发走,是不是有延迟啊,啊,那你看这个呢,就是来了我就发,所以说它上面讲究的是数据的这个传输速度比较快,下面呢是增大的,是你每批次拉取的数据量大小啊,各有优缺点。
03:04
所以通常在企业当中啊,哎,这块呢,这个时间呢,我们是控制在五到100毫秒啊,然后批次大小呢啊,你可以改成这个32K啊这样来处理哈。好,那这是这种优化手段,那接下来我们再来。哎,我们可以考虑在发送数据的过程中,我对数据啊采用压缩的方式,你看。那你刚才你是一次呢拉取16K,那现在我采用压缩之后,我是不是能拉取的数据量更大了,还是这一火车皮,但是呢,我现在已经拉的更多了。啊,所以说这个压缩呀,啊,也能够提高这个数据的一个存储量。那好,再来一个。再来个谁呢?是这个。比如说你缓冲器大小啊,新债呢,这是32兆。那32兆它够不够呢。哎,那在生产环境当中呢,啊,你可以改成64兆,那什么情况下你需要改成64兆呢?大家思考一个问题啊,如果你设置的分区非常多。
04:02
分区非常多,多到什么程度?假如说极端情况,咱来一个1万个分区。啊,这有点极端啊,那好,那1万个分区,我一批次,每一个分区我说要准备一批次数据。那一批次数据是不是就16K。哎,这是至少的,而且如果是异步发送的话。每个分区是不是有多个批次的数据在这背着?那有可能你这里面存储的数据量不够,比如说你就32兆。我一下就拉走了,甚至有一些火车皮还得等着。那你这个拉取的这个速度是就慢了啊,所以从综合角度来说,哎,这几个参数呢,都会影响最终你这个卡卡生产者的吞吐量。啊,那生产环境当中呢,要灵活的去调整对应的这几个参数,那一定要注意,那你这块呢,要改的特别大,它是有负面影响的,就是会导致你数据的一个延迟啊,延迟比较高啊。这是一把双刃剑啊行,那下边呢,我们就来这个实际的这个写一下这个代码好吧。那这个代码呢,其实啊,你可以在原来的这个呃,异步发送啊,或者同步发送基础上啊进行修改,那接下来呢,我们自己好久也没敲了啊,我们敲一遍啊。
05:15
好,我们再敲一遍啊。没方法。那这里面呢,呃,几部啊,还记得吗?三部是吧,创建生产者。第二步呢?发送数据。第三步呢?第三步,关闭资源。好,那这么三步,那第一步创建生产者。Have a producer。是的。是这啊,然后呢,下面呢,我们这里需要传入进来一个purpose是吧,哎,需要它,那需要它呢,你就创建一个那D零号呢,就是对应的配置信息。你有一个parties。
06:03
好得到一个它之后把它复制。放到这里面,然后点Y。那现在呢,我们就来了一个好不好producer啊,那来了之后呢,把这里面对应的必须配置的参数啊记好。必须配置的参数,第一个就是连接卡卡集群。谢谢。二点。我60。Conig第二,那我这个呢是boolo server,好,那我们连接上呢,就是hi doop1029092,那如果你再连一个的话呢,就是HIOOP103。9092OK。那这个呢,就是连接上卡法集群,那之后呢,我们第二个参数就是对应的K和Y6的叫序列化啊,序列化好part点或。
07:01
嗯,点K写着画。那我这个就是10G。系列话,There class there get name OK。下一个对应的Y流。卖的话。使劲点class.get name。OK,那现在呢,就是必须编写的内容就已经OK了,那下面呢,根据我们这个课当中,我们需要,哎,如果为了提高它对应的吞吐量,我们需要配置四个参数啊,第一个参数就是缓冲区大小。对吧,第二参数呢,第二参数呢,是批次大小。第三个是对应的叫LMS。第四个参数对应的就是谁呀啊压缩。
08:01
好,那我们一个一个来配置哈。点put。Producer这个第二哪一个呢,是对应的这个叫buffer,哎buffer memory它啊啊拿过来,那拿过来它呢是32兆啊,那32兆我们把这个拿过来哈。这个,那在生产文件当中,如果我需要把它改成这个64兆怎么改啊,非常简单吧,在这基础上乘以二,我相信大家应该会算吧,啊,那这里面我就不再过多修改了哈。那另一个呢是purpose.put现在呢叫批次大小,那就是con。那就是。Size啊,这个P次大小啊,好过来那批次大小呢,默认是16K,那这里面呢,我还是原封不动拿16K,那生产环境当中呢,你可以改成这个啊十这个32K啊。好吧,那下一个呢是02S,它的默认值啊是零啊点不等。
09:00
第二这个呢,是另个MS。好,那零的话,我给它稍微改大一点,我改成一也是一毫秒啊,一毫秒啊。那生产环境当中呢,是五到这个100毫秒之间,根据你生产环境的一个需求,看你追求的是P大小,还是追求的是这个对应的数据的这个传输速度啊。那另一个呢,是压缩2.put。像这个第二,那这个压缩是什么呢?哎,压缩这里面要注意一下啊compression,比如说这呢是压缩的一个类型,好选择它。那压缩类型你能有几种选择方式呢,几种在这个卡法里面,它给你提供的这个压缩类型有GZP,有snap LG four,还有ZSTD啊这么几种,那通常情况下呢,在节当中啊,这个啊,S snap要用的多一些哈。拿过来。OK,那这些呢,就是我们提高卡瓦生产者吞吐量对应的四个核心参数,在生产环境当中需要灵活的一个配置就行了哈,那这边把这个补齐。
10:05
不循环。Have a producer send。又一个。Part record,那第一个呢,是first。第二个呢,哎,第二个呢,就是我们发送的这个Y流值。这样就可以了,采用最基本的一个发送kaa producer.close关闭资源,那整个这个过程呢,我们就写完了,那写完之后我需要对它进行一个测试,那测试呢,我们就往这个for主题里面发送这种数据,那我看一下我这个消费者有没有打开啊。103,消费者消费这个first topic没问题对吧,没问题的话我就咨询一下。那这里面呢,你只要能保证啊,最终这块能够收到这个对应的数据啊,那就说明啊,这是OK的啊。
我来说两句