00:00
好,接下来呢,我们来看一下卡法博总体的一个工作流程哈,双击打开。首先呢,上面呢是主kper机群,下边呢是卡卡机群,好,那么他们两个之间进行哪些通讯呢?第一个每台卡普卡博节点启动之后,都会向主kper进行一个注册,告诉他哥们儿,哎,我已经活着了,哎,再来。启动一个,注册一个,那么三台博壳启动之后,那在这里面就会增加对应的三个节点。012好,那他注册完毕之后,下面呢,开始选择CTRL节点。那么博科里面每一个节点上都有对应的一个controller,那么谁会成为未来leader选举的一个老大呢?那这里面他们就是争先去抢占这节点,谁先能抢到,他就是日后负责leader选举的好,那假如说第一个节点抢到了,那他就是类似的controller leader,他说了算。
01:02
那好,他上任的第一件事干什么呢?第一件事儿呢,就是诶监听对应的这个博克斯埃斯这个节点,这个节点下有任何博弱科的一个变化,那我这里面都能够第一时间监控得到好,监控完毕之后,他开始真正的选举,那选举之前啊,给大家介绍一个概念叫AR。什么叫AR呢?AR是卡不卡分区中所有副本的统称,比如说我有三个副本012,哎,那这呢就是一个AR好。那我们之前是不是学过一个IR呢?稍微回顾一下,什么是I呢?IR呢,是leader和follow之间通讯非常正常的所有的节点啊,里面包括leader和对应的佛罗好。那下面他的选举规则是什么?选举规则这样在isr中存活为前提,比如说你成为leader的前提啊,你必须得在IR里面活着好,那如果说都活着,那我选谁当老大呢?哎,他是按照AR中排在前面的优先。
02:05
比如说AR里面启动的时候,它会有一个固定的顺序,比如说刚启动的时候,它的顺序就是102啊,这么三台节点,那好,那么IR呢,假设也是102,那好,那如果不是102也没关系啊,比如说你是012都行啊,因为它选举的是按照这个顺序,只是在这里面存活就可以了。那么leader就会按照102的顺序进行轮询,比如说哎,我这呢是一,那一挂了之后我会选择零啊,零挂了之后呢,我会选择二啊,这样呢去选择对应的leader哈。那假设现在呢?我们选举出来的leader呢?就是这个broke一行。那么他选举出来不科一为leader之后,他就会把这个事情告诉谁呀?哎,告诉给对应的叫主keepper。把这信息写到这儿,你说他不纯数据,他把leader信息和SR信息都会写到这个节点下。进行一个备份。那接下来其他CTRL的节点会从这里面拉取一定的数据,那为什么要拉呀?
03:06
哎,其实主要是防止你这个controller leader他挂了,挂了之后他们是不是随时准备上位啊,那上位的时候他是不是得获取丁的信息。那好,那下面呢,就是生产者往这个集群里面发送数据,发送数据之后follow呢,主动的跟leader进行同步信息,那同步信息在底层它是怎么存储的呢?哎,它是采用log的方式进行存储,那当然这个log是一个虚拟的名称啊,其实它底层存的是segment。那么S格呢,大小呢,是一个G一个G一个G的进行一个存储,好,那虽然说一个G呢,呃不是特别大,但是你要想从一个G当中查询出你想要的数据,还是需要点时间的,那怎么能够查询更快呢?哎,它就采用了一个叫index索引的方式进行一个检索啊,那这个点log呢,就是这一个G的segment啊,这样的一个配合使用啊,啊加快你的一个查询速度。
04:01
行,那下面呢,这边呢,进行一个应答,好,那在这个生产环境当中,如果leader挂了。那怎么办呢?那它立挂了之后啊,它会这样从这个节点上是不是就掉了,那掉了之后这个controller是不是就能够监控到这个节点变化,因为之前不就已经监控了吗。他捕捉到这个变化之后,它会重这个主K边当中再拉取回来对应的leader信息和R信息,诶拉过来,拉过来之后干什么呢?进行重新的一个选举,哎,那选举的原则仍然是说在asr队列里面存活为前提,之后呢,按照这个AR中排在前面的优先。哎,是这样一个过程啊啊,那他在拉的过程当中,比如说这里面一已经没了,那这个一呢啊,它也是给他会干掉的哈,干掉。然后呢,我这边选举出来新的leader之后,哎,那我干嘛?哎,我就要更新对应的这里面的信息变化,叭,如说一已经掉了,哎更新调,更新调之后,那么这么新的leader就诞生了啊李零。
05:04
那零之后执行你上位,比如说你这里面一挂掉之后,那就是零,那零如果再挂掉呢,零挂掉的话之后就是这个二节点进行一个上位,那再有呢,就是整体的一个呃,卡普卡博科工作流程,那后续呢,我们会针对每一个拈详细的给大家进行一个阐述哈。
我来说两句