00:00
好,接下来呢,我们来看一下分区副本的一个分配。那可能啊,好多同学有这样一个疑问啊,什么疑问呢?说海哥,你总说咱们有三台或者四台服务器,假如说四台服务器。那如果我设置的分区数大于了你服务器的台数会怎么办呢?比如说我设置16分区。那这时候16分区都应该存储在哪几个节点上呢?每一个节点上又存几个分区呢?是吧,哎,涉及到这样一个问题哈,那下面呢,我们就来详细的研究一下,那现在我们来做一个准备。创建一个topic主题,那这个主题呢叫second,它呢是16个分区,三个副本,那看看怎么存好吧。那行,那首先来看一下我们的服务器啊,我们1023个节点都已经启动了,103104以及呢,对应的105好不好。哎,这卡码没起哈,我把它起一下。Star。
01:04
保证呢有四个节点,现在呢,我们来创建一个新的topic主题,并。好不好?尴尬。Server开度102。9092,刚刚我们是创建。Topic,我们创建一个second。啊,第二个主题。尴尬。Part我们创建16个分区。三个副本走。帕森斯。PR。好,现在呢,就已经创建完毕了,那下面呢,我们来查看一下对应的这个主题信息啊。
02:09
现在我们看到了这样一个情况,说一共呢,有16个分区,对应的三个副本,那他在底层是怎么存的呢?看一看哈,你看首先呢,第一个第一批副本啊,一共把四个节点嘛,01234,第一批副本呢,是1023,你看第二批副本仍然是102310231023。知道吗?那他下一个怎么存的,下一个你看我这里啊,我这个是这样存的。嗯,你这是1023之后我找的是二,我从这找的二,然后3311,然后零对吧,2310错了一位,那下一个呢,下一个我找三,嗯,从这三三然110022。是吧,是不是有顺序啊,那你再往下看,这呢是。1023,那下一次呢,你这个是错了几个,就是二是不是错两个,那这个呢错几个,我错三位3102啊3102,然后下面呢是00223311。
03:11
对吧,那再来一个。再来一个,他又轮了一圈,哎,这个呢,就是你这是零啊0223311。是吧,再来一个呢,再来一个呢,就是又回到了二。你这是2331110啊这样,比如说呢,它是尽可能的错开,那其实啊,这个呢,是由于我之前啊,创建过多个这个top主题啊,正常情况下应该是这样的,应该是这样的哈,我给你把笔记打开。比如说呢,我们创建的仍然是16分区,哎,三个副本,它应该是这样,比如说0123,但是这个0123啊,它这个顺序呢,有可能是打乱的,有可能是一二。三零也有可能是2103啊都有可能啊,不管是哪一个,但是他第一轮如果你创建的是你刚搭建完集群,第一轮的这个副本,他应该这样。
04:02
是1230,就是这个顺序,从这开始。哎,错一位错一位错一位错一位啊,先错的是一位啊,你现在可能看到我这个刚创建完是呃多了一位,是因为我在测试环境当中啊,我提前呃创建过多个这个topic主题。那行,那你看这里面,你看第一轮是错一位,那第二轮呢。错两位,第三轮呢,第三轮是错三位啊错三位,如果你看这个不好看的话,你可以看这个。给你打开这PPT啊,呃,原则上呢,这是你看啊,正常情况下应该是,如果你创建的是第一个主题,记住整个基金当中创建的第一个主题这么来的。Leader follow follow好吧,那它下一位你看这个leader完成之后,那下一个F1,然后leader之后呢,挨着紧挨着的follow follow,然后leader之后紧挨着follow罗,For罗,哎,然后leader。佛罗佛罗,哎,这是第一轮啊,第一轮那之后呢,第二轮的时候,这是leader德对吧?哎,它中间空一个之后佛罗佛罗。
05:03
那么下一个leader在这儿呢?那中间空一个follow follow,这是第二轮,然后leader空一个follow follow啊,然后leader再空一个。那到了第三轮的时候就不是空一个了,第三轮的时候它是空两个,记住啊,你先不要看它这个空一个,再空一个。是他,然后接下来回过头来,这是第二啊,这相当于是第三个副本了啊,第三个副本是扣圈了啊,扣圈了那之后呢,例在这其实这呢应该是空空啊,然后到这儿,到这儿之后,这个是第三个副本啊。然后再是leader空空啊,然后副本是吧,然后这个副本啊这样来的,然后呢,Leader之后仍然是空空啊,然后副本之后呢,再找下一个。是这个意思。呃,那他为什么要这样去做呢?其实他尽可能的保证这个,呃,负载均衡。对吧,让每一个节点上啊,均匀的一个分配,同时呢,呃,让尽可能的保证数据的可靠性,它防止什么呢?比如说你这是力封,那你下一轮的时候如果还是这样的话,那再下一轮还是这样,那万一这三个节点都挂了。
06:09
那数数据就丢了,哎,这所以说呢,它是呃控制这种啊,所以他尽量的,诶下一轮我空一个,那这我你你这三个挂了,我这还有一个对不对啊,你这三个挂了,我这还有一个啊,它尽可能让你这个均匀分布,同时又保证数据的一个可靠啊。
我来说两句