00:01
然后Q队列。队列又是什么东西啊,队列,他说啊,存储消息的。物理试题。就我这个消息啊,需要。需要给它存到我的MQ里边是吧?存到哪呢?给它存到队列里边了。一个topic中可以包含多个Q。就是多个队列,每个Q中存放的就是这个里边的消息。呃,一个topic叫Q,呃也被称为一个topic中的消息的分区,这边有个有个概念啊,叫叫队列,呃,也有的叫分区,这个分区这个概念啊,实际上来自于卡夫卡。在。UMQ里边啊,它实际上叫Q,在卡不卡里边它叫分区,人家卡不卡里边没有Q这个概念,它有什么叫叫叫叫叫叫分区啊。
01:03
叫。分区,那在这个里边没有这个概念是吧,这个分区和谁和这个Q实际上是一个一个东西啊一个东西。那么我们看啊,就这个意思。我的宣传者啊。这是topic是吧,我把消息。哎,扔到扔到这个里边,这是一个分区。啊,我生产一个骨头,我扔进去生产一个生产一个扔进,那这个狗就开始开吃这个骨头是吧,这个骨骨头不好啃呐,硬骨头是不是硬骨头不好啃,所以它啃很慢,生长的很快。是吧,哗哗一会生产很多,这消费的太慢。所以那我这有一堆狗啊,我我能不能能不能再多派几个狗。过来来消费不行,为什么?这就是为什么要进行分区,我们为什么要把消息啊分Q给它存放。
02:05
原因主要就是为了提升。整体MQ它的什么读写效率?因为这里边儿有一个前提啊。这边有一个前提需要大家,呃。需要大家清楚什么呢?就是。一个消费者只能消费一个。什么?Q中的。啊,一个。的Q中的。消息。呃,当然这句话我们现在啊,就目前来说,呃,给大家先这样说,其实要确切的来说,他他这句话实际上是不对的啊。二是不对的。呃,咱们咱们先按这个通常意义的说啊,一会儿再给大家详细说啊,为什么说不对的啊。
03:02
呃,一个消费者只能消费一个topic里边就。呃。或者这样说吧,这句话或者这样说啊,嗯。一个Q中的消息。只能。啊,一个只能被一个。消费者消费只能每一个消费者,这样大家好理解了啊。你看我,我这是一个队列。里边的骨头只能让这一个狗来吃,这它吃的很慢呢。那我现在有。有,这有三条狗,我给它分了三个队列,那这样的话,每条狗就可以吃这个队列里边的骨头,它吃这个里边,它是这个里边的。
04:00
明白吧,就多个分区可以有多个消费者,一个分区只能有一个消费者。你说我这啊。你说我我我这这三条狗里边啊,比如说这这狗啊,这狗它这个。牙口比较好,咔咔咔把它吃完了,这个呢,牙口不是很好,我我能不能我既吃这个里边的。又是这个里边的。不行,他是不允许这种情况出现的。他只能吃。你要吃他的,只能吃他的。你就不能这两个你都吃。这是不行的,知道吧,这是一个topic来Q,只能被啊一个消费者消费,所以大家可以看,那那如果我把这骨头都扔到一个队列里边,肯定的消费速度比较慢,我给它扔到三个队列,我就可以增加消费者消费的速度就变快了。对不对,这个应该大家能够理解啊,但为什么说这句话啊,他不确切的说到后期学习过程里边,你会发现这句话其实是不对的。
05:09
确切的说应该是这样的啊。就是一个topic里边,呃,Topic中的Q。呃,一个的中的消息只能被一个你注意啊,一个消费一个消费者。五中的。一个消费者。消费。这句话是正确的。一个消费者组。什么意思,这这个啊,后这个给大家说的,你能听明白你就听啊,听不明白拉倒到后边我们学习过程里边慢慢再学啊。什么意思呢?就是是这样的啊,假设这三条狗是一个组。这三条口一个组,那么他们会平分这三个。分区,或者说这三个呃Q啊每人啊,这每狗啊,每搞一个分区对吧。
06:07
同时你注意啊,假设我这儿还有。三条狗。我这儿啊,还有三条狗。其实这三条狗。也是可以消费。他的。也就是说,也就意味着这个分区。有,既可以被他消费,也可以被他消费。对吧,那这不是两个吗。是不是这是两个,这是允许的,但是不允许什么不允许这个狗啊。消灭它。然后同时这狗又消费他。这是不允许的。因为这个被谁被他消费了。被他骗费了。明白吧?呃,这是这样啊,就稍微有点绕了,因为这里边儿涉及到一个什么概念,叫消费者组,一个消费者组实际上对外表现出来就相当于一个消费者,但为了增加这个消费者他的消费能力,我们给他多搞出来啊,一大堆的消费者。
07:20
它形成一个消费者组。形成一个消费者组,所以这个概念就稍微复杂一些啊。当然再说的深一些啊,再说的深一些,比如说啊,我这三条狗是啊,一个一个分区是吧,呃,一个消费者组,我这儿呢,还有一个消费者组,这消费者组里边有几条狗。有两条,两条狗。这两条狗它没法分,没法平分这三个分区是吧。那么。可能他消费这这一个分区,他是消费的这两个分区。这是允许的。你注意,这是允许的。
08:00
也就是说,一旦他消费了。那咱们站在分区的角度来说,这个分区被谁消费了?被他消费了,这个分期被谁消费,也是被他被他消费了。这一个分区只允许。一个消费者组里边的一个消费者。来消费。没有奥运吗?这个只允许这个消费者组里边OK。这个问题允许消费。那你不能出现,这你不能出现什么啊。大家看。对于他来说,他消费这俩,那你站在这个分区角度来说,是不是他既被他消费又被他消费,这是不允许的啊。这是不允许的。就这个分区分成了俩消费者,这是不允许的。但是一个消费者。可以消费多个分区,这是允许的。
09:01
明白吧,这这就有点绕了。这就有点绕了。所以这这就给大家进一步深入的讲一下啊呃。再写上几句话吧,嗯,一个。呃,一个。Q。呃中的呃消息。嗯。不允许。啊,同一个消费者组中的。呃,多个消费者同时消费。这是不允许的。明白吧,这是不允许的啊,这样呢,就有点呃,有点深了,这个你能理解就理解,理解不了我们后续慢慢学习过程你就知道了啊好。就我们说的什么对立就是对立啊。呃,说到这儿呢,就是给大家再引申一步啊,这这这个是什么,这个就是大家如果从网上要看,查找一些资料啊,你会看到还有一个概念叫分片,我主要让大家知道这个分区分片不一样。
10:11
分片不同于分区。分片这个概念啊,你注意分片这个概念实际上在,呃,官方啊,实际上是没这个概念的,官方是没有这样说的,只不过我们在网上看一些资料的时候会看到。在分片指的是什么存应?分片就是brokeer是什么?Brokeer就是我们的。主机啊。啊,我们一会在架构这,我们要讲这个broke啊,要深入的讲这个brokeer,那么分片指的是存放相应。A。每个分片中会创建出相应数量的分区,你看啊,有分片有分区。就是每个分片里边会创建相应的Q,每个Q的大小是相同的,大家看。
11:07
我这是topic,我这个topic我的消息啊,这BROKE123就三个主机。我的消息放在了三个主机里边。那么在这三个主机里边,我在主机。1BROKE1里边放了几个队列?1234566个队列。主机里面放了四个队列,主机三里面放了两个队列。那么这一个就叫做A的在BROKE1上的分片。Topic a在一上的分片,Topic a在博二上的分片,Topic a在博三上的分片,这叫分片,一片一片的,对不对是吧,你像他嘛,在。B在BROKEER3上就没有分片。是不是这样一个概念啊,就是你要看其他一些资料的时候,它有个分片的概念,分片分区不一样啊,这个了解就行了,不是官方的啊,不是官方的。
我来说两句