00:00
好,接下来呢,我们来学习一下消费者主原理。对于好多刚学习考法的同学来说呢,那消费者主这个概念呢,啊,不太好理解,那下面呢,我们来详细的说明一下哈。首先来看一下消费者主,消费者组呢是由多个消费者组成的。那形成一个主的条件是什么?比如说你这是一个消费者主,那里面呢,有N多个消费者,他们怎么就形成一个主了呢?诶,其实呢,是所有的消费者都会配置一个参数,就是group ID。如果说他们的格数ID相同,比如说都是一。那么他们就会自动的形成一个消费者主,那后续呢,会详细的叙述它如何形成一个消费者主的一个过程,啊不要着急,那下面往下看,说消费者主内每一个消费者负责消费不同分区的数据。一个分区呢,只能由一个组内消费者进行消费,那举个例子,比如说这是一个分区。
01:04
那我这边呢,有多个消费者。那好,那这里面就是一个分区,只能由消费者主内的一个消费者进行一个消费,比如说他消费了,那这个不好意思,你就不能消费。那为什么要这么设计呢?主要的原因是防止你消费之后我也消费,那未来你是不是还涉及到一个驱虫的问题,哎,那就后续啊,非常麻烦啊,这样一个过程啊,还有呢,就是消费者组内每一个消费者负责消费不同分区的数据,比如说我虽然说我消费不了这个分区了,那我可以消费下一个分区。这是没有任何问题的啊,这要知道。那再下一个说消费者主之间互不影响。比如说这是一个消费者的主。这儿呢,又是一个消费者组。那么他们两个之间没有任何影响,你就把它当成一个消费者,你把它当成另一个消费者,这就OK了。啊,也就是说对内啊,虽然说这里面有N多个这个消费者,但是对外的话,它就是一个独立的个体,你可以把它当成一个消费者,没有任何问题。
02:09
啊,这个有一些稍微绕哈,我们来图形化的方式给大家讲解一下就清楚了,首先呢,左侧呢,这是有四个分区的数据。那目前呢,我只有一个消费者。那你看,虽然说我只有一个消费者,其实我也会构成一个消费者主。未来我们在写这个消费者API代码的时候,你会发现,只要你写了一个消费者,就必须得输入一个参数,就是格ID。就是格ID必须给的。那同说海哥我在用命令行的方式创建消费者的时候,怎么没有输入格入ID呢?哎,其实啊,虽然说用户没有手动输入,其实在他底层自动帮你生成了一个啊,随机的一个主ID啊,这要注意啊,所以说这主ID呢是一定有的,那这样你就不难理解了。
03:01
其实每一个消费者,他不也是一个消费者主吗?对吧,哎,其实啊,你看不管你是一个消费者啊,还是多个消费者,那你都把它当成一个主去看待,不就完了吗?哎。行,那我们来看啊,那现在呢,我就一个消费者,我怎么消费啊,那非常简单,你一个人的话,那你只能把所有的活都给干了,对吧,这有四箱,还有人参丸,那对不起,哎,你就都笑纳了是吧?啊一个人辛苦一点,那好,那我左侧呢,现在是还是四个分区,但是我消费者主变了。我这里面呢,哎,多了一个帮手,又来了一个消费者,那这时候怎么分工呢。思考一下,你说海哥这个应该比较好分,那第一个人对吧,第一个消费者哎,我消费两个分区,第二个消费者呢,我仍然也消费两个分区,好像也还可以是吧?那问大家一个问题,那为什么是上这个消费者他消费的是零和一,下一个消费者消费的是二三呢?有没有这样的可能说我第一个消费者,我消费零,我消费二,他的消费一,他消费三。
04:05
哎,这个呢,是我们后续它的一个分区分配策略啊,先埋下一个伏笔哈,好,那再往下看,那下面呢,这边呢,仍然是四个分区,但是呢,我消费者主里面的消费者多了,我变成了四个。那这时候就好分了,一人一个是吧,哎,就完美。大家来往下看。看什么呢,我现在啊,我这个消费者人数又多了,我多到什么程度,我比你这个分区。都多了。那这时候怎么分配呀。再说要注意哈,一旦消费者超过了你对应的这个分期数怎么办?那就得有闲置的消费者,你不能这样啊,不能画蛇添足,说这个你来帮帮他干点活吧,不行啊,咱之前说过,说一个分区只能由消费者主当中的一个消费者进行消费,不允许两个消费者进行消费啊,这个一定要注意。
05:01
那下面再来看,现在呢,对应的我这是有两个独立的消费者主,那他们之间怎么消费了,咱说过说消费者主和消费者主之间是完全独立的,也说你去消费你的,我消费我的,他们两个之间不发生半毛钱关系。哎,这就是这个,呃,消费者主对应的一个原理哈。
我来说两句