00:03
那么这里面其实有一个问题啊,呃,老赖,这有一个问题,什么问题呢?你看他啊,这个这个存在的问题是分配不均啊,人家这俩。啊,环形平均策略和平均分配策略,这俩都是平均啊,都都是比较平均是吧。呃,另外还有就是他不平均,人家谁前面都平均。那那用它有什么好处呢?说实话,用它的好处啊,现在不知道,但坏处除了不平均以外,还有个问题。我想问大家。这这三种啊,咱们看这表这三种,或者说两种平均的配上一个A哈希的,那么单说从这个。分配效率上来说,谁的分配效率高?思考一下谁的分配效率高。肯定是平均算法的。无论是他还是他。肯定是平均算法的分泌效率高。
01:02
为什么?算法简单呐,这个算法复杂呀。对不对,我们大家想一下啊,人家在公司里边,比如说举个例子啊,发苹果的。啊,公司这边一堆员工啊,给大家要发苹果。呃,这个发苹果的时候论个发啊,或者说发月饼吧,论个发。买了一堆,那怎么个算法,那我们自然能想到的啊,呃,一个我。咱们有多少员工啊?我挨着数来一下,然后呢,我有多少月饼,我挨着数来一下,一除。一除,除出来正好是个整数,好,每个人几个啊,一分。啊,多出来一个,把这些给了平常工作最好的,多出来几个给了谁是吧。或者是什么我也不查了,就直接抱着这一堆啊,这个这个月饼啊,然后一个人发一个,一个人发一个,一个人发一个,发完了还有剩余,再挨着再转一圈,一个人发一个,一个人发一个,呃,还有剩余,再挨着转一圈,一个人发一个,就我们马上能想到的就是这个,因为他上海思路很简单。
02:11
实现很简单,效率很高,我们很少能想到这种算法,对不对?所以啊。给大家这样写一下啊,我们做个对比啊。做个对比。呃,就是。两种。平均。呃,分配。策略的。嗯。分配效率。呃叫呃。较高。呃,一去行。
03:00
关系。策略。嗯,策略。降低。啊,因为这个。一致性。巴西。嗯。算法。比较复杂。是吧,啊,它比较复杂啊,这是第一个。呃,另外呢,呃。另外。一致性。哈西。策略。呃,分配的。结果。也。啊。可能上。存在物。哦。平均啊。情况对吧?这都是它的坏处,那这么多坏处,想不到它的好处,那为什么要有它?
04:01
哎,它的好处啊,给大家做。是很大的。它的好处是很大的。它的好处是什么?它的好处啊,会呃,这个。这样这样说吧,就是。一致性。华西。办法的。这存在的问题对吧?啊,这样写好一些啊。一致性。算法。算法。嗯。存在的。就是你有什么用?你存在的意义是什么?我先给大家写了,再给大家解释啊,既可以有效。减少什么呢?由于。
05:00
消费者,呃,扩容。缩容,由消费者组扩容或缩容。所带来的。大量的。因为我们前面刚刚说过re balance,这个re balance啊,呃,它它它它的危害啊,危害还是很大的。所以我们尽量要避免re balance,你要避免re balance,我们就可以采用这种,这种这种叫什么?呃,一哈希算法,那为什么呢?是这样啊,大家看一下,我们没有对比就没有伤害是吧?我们看一下这个图啊。嗯,平均。环形挺举。
06:02
这样吧,我拷贝个他吧。就是,呃。Re的结果啊。大家看。呃,我以他为例啊,就以他为例。呃,这个是什么。呃,这个假设啊,这个图是我们扩容吧,咱们先举个例子啊扩容。啊,扩容。钱的。分配。情况。这扩容前分配情况啊,现在我要进行扩容,扩容意味着什么?
07:06
呃,扩容意味着我这儿增加一个。比如我这儿增加consumer。嗯。是吧,增加ae,那你注意啊,现在再分就不是长这个样了。但是这些呢是吧,谁分给谁,谁分给谁,现在我那大家想我得先怎么算。先看一下啊,呃,一共是五个,呃十个呃Q5个,那就十除以五等于几等于二。正好出完,每每人分两个,每个这个这个这个。Consumer。是吧,分两个,所以啊,大家看会出现什么情况。把这些都去掉啊。往这挪一下。
08:01
往这儿挪一下。哦,大家看。嗯,我的这个是不是给他。我的这个是不是也是给他。对吧,这两个。这样画不好看。我这个。给他。这个给他。是吧,这俩都是他。变了没有?原来零一是不是给了A没有变啊?然后再看这个。借给他。借给他。看到这边了没有。二原来是谁的?二原来是给A的。现在给了B了,所以他变了啊。
09:00
它变了,就这个啊,这个变了,咱们换个颜色。换颜色,换成这个颜色。呃,然后他原来。现在给了B了,原来给的是谁?原来给的也是B,所以它没变啊。然后再看他,他那肯定。给他。他也是给他。就这啊,就这啊。那原来大家看一下。这谁四五四五原来给的是B,现在给的是谁?给这C变了没有。对了吧。这变了意味着什么?就发生re的事了呀?是重新分配了。再看。这个给了他。这个给了他。嗯,6767,原来是谁C,现在是谁D变了吧。
10:03
再看八九。那就肯定变了。因为我们。原来就没有意义。对吧,1089给的是D。是吧,现在给了他。也就是说大家看一下啊。你看在这十个里边几个发生了rebel?1234567。是吧,除了这三个嘛,不就是七个嘛。70%都发生了。那这个肯定是不好的。发生就是这是我们。扩容后。是不是这个情况,当然反过来说你要缩容呢。这如果是原来的少了一个变成它了,So,是不是也一个意思,是不是也是七个发生了变化?是一样的。这是70%啊,从这来看,70%的balance。
11:03
那那我们再看一下谁的一直还行。毕竟还是我们。嗯,我们这样啊,我们把它拷贝一下。我给他放这。大家看我们假设啊,这是这个,我们现在说谁呢。刚才是扩容啊,我们缩容。也就是说原来是abcd,我现在啊,看着我假设我把A去掉。缩容了。所以这个是。放在这儿吧。
12:04
收容啊,这收容前的。像这样啊,缩绒缩绒后一会儿来说大家看啊,谁变。就这个没了。谁会变?大家想一下。与原来的这些。是吧,啊,那那他影响的是不是只有他上边的。下面的会影响吗?想一下不会吧。二。改了B,原来给B还是给B?345给C还是不变,6789给D还是不变。唯一变的是谁?是不是这零一原来给了谁了?原来给A。现在给谁,现在给B,所以他。是变了。它是不是也变了。
13:00
除了这里其他变了没有,其他都没有变,也就是说。十个里边只有两个。发rebell。所以它明显是不是减少了balance?这是缩绒。同样的道理,如果是扩扩容的,反过来看不就扩容吗?原来是这个样,扩容增加一个。是不是仍然是这两边了?其他都没变。是不是?所以啊。呃,所以呃这样。我给大家。呃,这样。这是。比。呃,栈道。
14:00
是不是70%。这种方式啊,Re balance的比例占到了70%。对吧。这个呢?就见到。是不是只有20%啊。是不是占到20%啊。不要站。占到占20%。就这。70%。但这这就这个例子本身来说的啊。我给大家转个图吧。可以对比。就出来了。是吧?啊,没有对比就没有伤害啊。
15:11
好。呃,这是所以啊,当然你注意啊,这这个这个,那那你有有个妹会说那这样的话。那两种平均算法。那,那不就没有存在的意义了吗?是不是,那也不是啊,所以我们再说一下,就是一致性。算法的应用。场景啊,它的场景是什么呢?用场景那。是不是?就我们如果说consumer变化啊。不平衡。你说你有谁?如果不频繁,那我们肯定用平均分配算法。所以他。应用场景是什么?
16:02
数量变化。呃,较频繁。场景。对吧。你如果比较频繁,经常在变,那我就用它。你要是一旦我形成了,再也不变了,那你这个。这个是不是我们用平均算法效率会更高一些?是吧,啊,这是我们进一步引申了一下啊,爸爸这。常最常用的这三种算法,给大家做了一个对比啊,以这个伊进哈希算法为主线啊,给大家做这个对比。
我来说两句