00:00
好,接下来呢,我们来看一下第三章卡法科相关的一些调优哈,那我们还是老规矩,接下来回顾一下卡法博诶内部的一个工作原理哈,打开。打开之后啊,首先呢,仍然是这个卡巴集群和主K班集群对应的一个工作流程,那么博科一旦上线之后,就会在这个主K班节点上进行一个注册好。那么他注册完毕之后,接下来呢,就是这个controller开始争先,诶,谁能成为controller leader,那么他们就会抢占对应的主keepper,诶,Controller节点,假如说某一个节点抢占到了之后,那么它就会成为新的crler leader,好,那么它成为新的leader之后,它就会第一时间的去监控对应的博克斯埃斯对应的这个节点路径,好。那么下面呢,就开始真正的一个选举,那么他的选举规则是怎样的呢?首先第一个选举的新的老大必须得在is SR队列里面存活,接下来呢,是在AR中排在前面的,那优先成为新的老大啊,仍然是,比如说AR是102 isr102,那么很显然这个102啊,都在这个SR里面存活了,那好,那谁排在AR的前面呢?那一那一排在前面一就会成为新的leader哈。
01:19
那下面呢,这个controller就会把对应的这个leader信息和SR信息,诶,记录到对应的这个主key播节点上,以备啊其他节点能够后续的访问啊,那下面生产者发送过来的数据之后,首先发送到leader,那么follower呢,会主动的跟这个leader进行一个哎拷贝备份。那下面呢,它在底层存储的时候呢,是采用segment进行存储的啊,一个segment呢,是一个G的大小,那如果一个G存不下的话,那它就会形成一个新的S呢,进行一个存储好。那么每一个segment呢,下面呢,啊,为了方便进行一个数据的检索,哎,给你创建了一个index索引啊,那这个点lo呢,是实实在在存储数据的地方,那其实呢,它还有一个文件呢,就是对应的这个时间戳,哎记录每一个文件,它是什么时间开始重建的,那这样后续呢,呃,超时的时候啊,哎就可以进行一个按照这个时间节点啊,进行一个判断是否这个数据超时了啊把它删掉啊等等啊。
02:18
行,那下面呢,这块进行一个应答啊之后啊,呃,如果说这个leader挂掉之后,那他就会在这个伯克斯埃蒂斯这个节点上进行一个退役啊,也是掉下来,那掉下来之后这边呢,就会立即的捕捉到对应的这个节点变化,那捕捉到这个节点变化之后,诶,那它就会从这个主K边上获取,哎,以前的这个leader信息和SR信息获取完之后,它会按照对应的选举规则,怎么选取规则呢?在isr对列里面活着为前提,然后呢,按照AR里面排在前面的,哎,成为新的一个leader哈,那这个一挂了之后,那排在前面呢,就是这个零啊,它会成为新的leader。好,那就更新对应的这个leader信息,好更新完毕之后,你看这里面呢,就已经变成零了哈,那这是整个的卡不卡博科啊集群的一个工作流程。
03:09
那下面我们来看一下对应的一些参数啊,那刚才提到了大量的这个IR,那么IR里面是存储了哎,活着的leader和信息,那好,那如何退出这个SR呢?那退出的这个标准呢,就是超时了,也就说follow和这个leader通讯超过30秒了,没有任何的一个数据请求和数据的同步,那它就会退出对应的HR队列。那下面有一个叫leader啊reb,也就是说leader的一个自动平衡,那么自动平衡啊,它是帮你是打开的,那建议呢,在生产环境当中啊,不要把它打开啊,除非啊你这个节点呢,经常性的发生啊,这种挂掉这种情况,而且大面积的挂,那么会出现一些负载不平衡的情况啊啊否则的话,正常情况下呢,一般不建议打开,因为打开的话就会占用你这个卡瓦机群大量的一个时间,会影响你的一个传输效率哈。
04:00
这个期间啊啊就不能处理数据了啊,那就要等待哈,那这个参数呢啊,是这个再平衡的一个比例哈,啊是10%,那上面这个关掉,那这个也就不用考虑了,那这个也是再平衡的啊相关的那下面是日志的一个S格的大小,那默认呢是一个G啊正常的不用调就可以了,还有呢,它的存储数据,那个索引是按照稀疏索引进行存储的,默认大小呢,是4KB存储一条索引,那这个通常在生产文件当中也不会进行一个修改。啊,那下面呢,是日志保存的一个时间,默认的是保存七天,生产环节当中一般呢都会进行一个调整啊,你像咱们项目里面呢,就是调整为三天,那还有一些大厂呢啊,有个别业务线有的调整几个小时啊,六个小时七个小时啊啊都有啊,这也要根据实际情况进行灵活的一个调整啊,那下面当然有分钟级别的,还有毫秒级别的啊,毫秒级别一般用的啊要少一些啊。呃,行,那这个还有就是检测数据是否超时的一个时间间隔,那这是五分钟对吧,五分钟看一下有没有超过这个三天啊或者是七天啊,下面呢,这个呢是判断哎,这个日志啊,这个大小啊,大小有没有超过你设定的一个阈值,那一般呢,这个呢,也不会把它打开,就设置无穷大啊,按照这个时间啊去走就可以了。
05:13
那再往下呢,是这个日志的一个删除策略,呃,一般生产环境当中就是过期就直接删除就可以了啊,采用这个压缩啊,要少一些啊,非常非常少。呃,下面呢,是对应的这个线程数的一个设置啊,IO线程,那之前我们在讲这个硬件显型的时候,也给大家已经啊说明了啊呃,一般呢建议呢,这个呢,比如说你要是32核的话,那这个呢可以呃按24盒的50%,那就配置为12啊是这样一个配置是吧。再再往下呢,是这个啊,副本的一个抓取这个线程数,那这个抓取线程数呢,是这个,呃,12的1/3,那1/3的话就按四核来计算,那下面这个线程呢,哎,它就是呃12的2/3,那2/3呢就是八啊,给它八个线程就够了哈。还有呢,这个啊这个参数,这个参数呢,是页缓存的一个刷写这个条数啊,其实呢,就是强制这个页缓存啊,往这个硬盘上进行一个刷写,那这个呢,一般呢,不建议进行一个修改啊,这不建议修改啊,还有一个呢,就是也是页缓存啊,多久按照时间去刷写一下这个硬盘,那这个呢,也是不建议修改,那知道就行了啊。
06:17
好,那再往下呢,看一下这个服役新节点和退役旧节点啊,这个在我们之前的课程当中已经讲过了,那我们快速回忆一下哈,首先呢,你要明确,哎,我要退役旧节点的时候,诶是我要针对哪一个主题的数据进行调整,比如说我要针对first主题,那就把这个啊先配置一下这个文件,那我要再多加一些这个主题的话,那你就多加一些,哎,对应的这个主题的一个描述就可以了。那针对主题确定完之后,那下面呢这块呢,你还要列出来,哎执行计划,那执行计划呢,是针对哪几个博士科节点,那这个呢要明确出来,比如说我这个有一个薄弱科特点的,要把它干掉,那干掉的话,这里面就不要有四了,是吧?哎,我就用这个0123来进行一个均衡啊,形成这样一个计划。
07:01
呃,然后执行完呃,这个行程计划之后,然后把这个计划呢,放到这个文件里面,然后进行一执行,执行完毕之后一定要进行一个验证啊,进行验证啊,在生产环境当中啊,如果某一个主题呢,我们想增加它对应的一个分区,那怎么办呢?哎,直接在里面alter对吧?哎,修改它对应分区,那记住分区呢只能增加不能减少啊,这个一定要注意啊。下面呢,还有是调整对应的副本因子,那副本因子记住不要在这个命令行上进行相关操作,因为命令行呢,是改变不了对应的副本因子的,哎,怎么办呢?哎,只能通过手动的方式进行一个调整它的一个副本的因子,那这里面直接就是按照这种放到一个接身串里面,接身串里面有每一个副本的一个存储情况,那然后呢,一执行对应的这个呃脚本就可以了啊这个呢,有点类似于我们刚才呃服役新节点推役纠结点啊对应的这个计划啊,是一样的哈。还有呢,就是手动调整副本的一个存着,那这里面也是,哎,首先呢,得有这么一个接收文件。
08:00
接在文件里面已经明确指出了,我这个副本是存储在哪几个节点上啊,进行一个控制,那这个手动这个调整分局副本的一个存储啊,哎,主要是在生长环境当中呢,会怕什么呢?哎,每一个服务器它的配置不一样,比如说这个32T内磁盘,32T磁盘这呢是4T,这个4T,那这样呢,这两台机器它正常情况下按照这个负载均衡的啊存储它每一个会均匀的给你分布,但是一均匀的话,不好意思,天生它就不均匀,那你还按照均匀的分,那就有毛病了,是不是啊,那这时候呢,手动的调整啊,让这两台机器呢,多承担一定的这个存储的压力哈,好。呃,下面呢,是这个leader part,也就是说负载这个均衡,那这个呢,直接把它建议关闭掉就可以了啊,直接关闭掉生产文件当中不建议使用。呃,下面还有一个新的知识点,就是自动创建主题啊是什么意思呢?啊,假如说啊,我们现在呢,是往一个陌生的主题,比如说这个five主题,这five主题我们集群上是没有的,我直接往这个主题里面发送数据,那会出现什么情况呢?会不会通过呢?是不是,哎,那下面我们来验证一下啊。
09:03
首先呢,我们,嗯,打开一下。B卡不卡topic杠杠,What?Stop。Server。Hi 1029092好,然后呢,杠杠list先查看一下主题。那那现在主题啊,没有对应的这个file对吧?啊那下面呢,哎,我们就呢,向这个主题里面发送数据,哎直接就是发送,那会出现什么情况。啊,你看。发送完了,发送完之后我关掉,关掉之后,哎,我再来查看一下对应的主题。这里面就出现了对应的这个,哎,Five主题知道吗?啊,也就是说自动帮我们进行一个创建,那大家想这种好不好呢?自动帮我创建。啊,我们先来查看一下这个主题的详情啊,我们自动创建的这个主题,它的分区数和对应的副本数都是多少。
10:02
哎,这里面的分区数是一,副本数呢也是一,这就是我之前给大家说的默认的这个副本呢是一,那么创建这样一个主题O不OK。其实呢,在生产环境下,你想啊,如果来了一个菜鸟咔咔咔随便的就各种这个往一些未知的主题里面发送出去,那就会导致集群里面是不是出现很多未知的一些主题,那这里呢,是不方便我们运维的一个管理的啊,通常情况下呢,我们会把一个参数啊给它制成false。这参数。叫auto create,呃,这个主题以内,那我把它制成false之后,那就会你这里面没有提前创建主题的话,就不允许,哎帮你自动创建了。把这个功能呢,建议大家关闭掉,方便我们后续的一个维护哈,那这些呢,就是这个卡巴pro相关的一些调优哈。
我来说两句