00:00
好,那我们看一下啊,这个地方。消息队列的两种模式,至少我们知道有一种叫发布订阅模式,对吧?啊,至少我们知道有一种叫防布订阅,因为卡普卡是这种啊,卡布卡这种OK,那除了这个之外,其他的还有一个叫。点对点叫一对一的这种模式。啊,消费者如果主动的。这种一对一的模式里边啊,消费者呢,是主动的去拉取消息,拉取完了之后呢,这个消息七秒就是说他更单一一点,就是这个消息啊,只能给一个人用啊,至于深不深都是只能给一个人用,就做这个事了。啊,做这个事的比较单一啊,只能有一个人,就是说这个系统啊先定了AB。你再来C想用也可以,A再发一份什么到消息队列里边,然后再给C这种。那大家能明显感觉到他有。缺陷了。那你这个东西不可复用,假如说你这个消息要给多个人来处理,就很麻烦,这个事对吧,你就类似于像里边一样,里边呢这个消息是不是可以给多个人,但是给多个人要有个前提条件。
01:11
要多个多个thing吧,啊就这个一样,你这个点位点模式,那你要干什么。发给多个对不对啊,然后呢,你再去接收啊,再去接收,那我们看一下这个。叫发布订阅模式,一对多消息,消费者消费消息之后,这个数据啊,不会被清除,如果说我消费完了,我就清除了。那其他人也消费不了了啊,他要保存,但是呢,它是一个消息队列,不好意思,它并不是一个文件存储系统,所以它保留是有期限的。不是说无限期的华为,大家能不能听懂。啊,你可以配啊,你可以配这个时间,它不是像HDF一样,只要你不删这个数据干什么都在,因为我们说了,它只是一个消息队列,它不是一个。
02:00
存储文件的一个系统啊,只是一个消息链,所以它保存数据呢,有具体的实现啊,有实现要求是这个意思啊,那这个地方呢,我们来看一下,生产者发送一条消息到一个什么主题,无所谓,这个呢就是就是队列啊,就是我们所说的那个队列。那之后呢,我们可以有多个消费者来订阅嘛。这个对不对啊,订阅了这个助力对不对啊,某一个主题,那这个时候呢,就可以我一条消息可以发送给。多个人啊,发送给多个人是这个意思啊,发送给多个人,这个呢,就是我们整个的一个好处,那卡不卡呢,它是基于这种模式的啊,这种模式的这个就相当于我们所讲的那个公众号那种是吧。你可以订阅一个公众号,然后呢,人家公众号的一个管理员,然后发送一篇文章,然后一推送,他主动的推送到你的手机上面,对吧,啊这种的,那所以大家收到的消息都一样,对吧,是复制的啊交易这都一样,但是这个里边和追享呃,它基于这种发布订阅模式呢,我们刚才看到了一对一模式呢,它是消费者主动的拉取数据,那这款刚才我们举的例子是公众号里有。
03:19
公众号。他是你主动去获取的吗?是推给你的是不是啊推给你的,但是推给你的会有什么问题。对,你订阅了之后,他就必推荐你了,那这种有什么坏处呢?如果说消息队列一有这种方式,我实在是想了解一下。如果不想要的消息也给你拿过来了啊,如果消息队列里边,那你不想要的也除非你不订阅他,更重要的问题在于看啊这个地方消息队列来。生产速度是不是生产者决定的?
04:00
没问题吧,我的消息生产的快慢由我决定,然后呢,我往里边灌啊,你是一个存储啊,暂时能存一下,然后接下来我说往里面推,那速度由谁决定的。消费者,不是我说的是推,我主动往外推,由谁决定的?是不是由当前这个队列来决定的?对吧,我往外推的这种是由当前的这个队列来决定的。由当前的这个队列来决定的,OK,那这个时候就有问题了。因为你下游的这个消费者,他们的一个处理能力可不一定。是不是啊,诶,你可能是十兆每秒,你可能是100兆每秒。但是我推的速度统一了。50兆每秒,那你这个就崩了是不是,那你呢。资源浪费对吧,我能处理100兆每秒,可能这个生产速度就是100兆每秒。
05:05
对吧,那你就等于这个东西等于资源浪费嘛。资源浪费,所以呢。发布订阅模式当中它有两种啊,注意发布订阅模式当中又有两种,一种呢,就是我们说的消费者主动的,主动拉取数据的,有这种的消息之列。还有一种呢,就是我们刚才所提到的公众号,类似的这种由队列来主动的干这事啊。来推送的,这也有一种。啊,这也有种,所以卡夫卡呢,是我们所说的发布订阅模式当中的。消费者这边主动拉取到一种模式。你可以决定消费者这边决定你要获取的消息的一个速度。那第一其实卡夫卡这个用的多呢,也是基于这个点啊,当然它还有存储啊,还有那个速度快啊,都有它的好处,第一它是基于发布订阅模式的,这个跟点对点模式有一个很直观的什么好处。
06:03
消息可以传给多个消费者来使用。对吧,这是它的一个好处,那同样的它又是发布订阅模式当中的基于拉取这种方式的一个。一个内容啊,它又有一个好处,就是消费者的消费速度可以由消费者自己来决定,那这种有没有缺点呢?如果说没有缺点,那就没有了那个推送的这个模式了,是不是。对吧,基于拉取的这种模式有一个什么样的缺点?太慢了,消费者一直都不拉取数据。这个是他的缺点吗?你不拉数据,我没看到你说的这个缺点来看啊,这个地方呢,你要消费者能够实时的能。
07:01
获取到消息要做什么事的?他要自己有一个长轮询去干什么事?去看一下,去问一下你这里有没有新消息了推送他需要管吗?你需要管你订阅的公众号里边有没有新内容吗?他有些内容了,他推到你手机上就完了。对吧,但是如果说这个消息需要你主动的去获取,假如说是一个实时的系统,你你是不是消费者要不断的过两秒钟就问一下,过两秒钟就问一下。啊,那问也没有问题,假如说有消息,你该问问呗。问题就在于他长时间没有消息的时候,你还得问,因为你不知道有没有消息,所以呢,基于这种模式里边呢,它有个缺点就在于他还有一有时候呢,会比较浪费资源,因为它里边一直维护着一个长允许。啊,一直去询问这边是否有消息,能不能听懂这个概念。
08:00
对吧?啊,他是这种方式的,来询问一下有没有新消息,询问一下,当他没有新消息的时候,他还要不断的去做这个事,不断的去问,不断去问,所以呢,这个你要知道它中间的一个优先点,我们再回过头来回顾一下啊,第一个消息对列呢,有两种模式,第一个是点对点模式,第二个呢是发布订阅模式。对吧,点对模点模式呢,它一对一的比较单一啊,比较单纯是吧,第二个是发布订阅模式,它呢是一对多,可以让同一个消息呢,可以让多个消费者。共同享有。啊,这是他们俩之间的一个对比,那同样的我们后来还聊了发布订阅模式当中,它又有两种。一种呢,是消费者这边干什么,主动拉取的数据,一个是队列这边推数据啊,主动推数据啊,那主动推的这种方式呢,我们可能说了消费者各个消费者的速率不一样,但是你推的速度肯定是一样的了啊,肯定是一样的,那有可能这个消息不对等造成。
09:09
消费者能力处理不足,导致他直接崩了,或者说有的消费者有产可能产生什么资源浪费,对吧?啊产生资源浪费,这是它中间的一个点,那基于拉取的模式,它就没有这个,没有这个点,那你就具体的按照自己的速度来就完了,对吧?啊,你就可以配置它的一个速度,OK,那它的一个缺点主要在于。因为你是你这边主动的,你要维护一个长圆形。啊,常去不断的去问这个消息有没有就类似于我们当时说的所说的think,从China里边是不是这个数据。对吧,当时我们没有数据的时候,上午做做测试,那个事物他报错了,还有印象吗?是不是当时没有事物过来啊,但是S这边我知道你看到你结面有没有失误,有没有消息吗?不知道,我只能尝试着获取,只不过说我获取回来的是一个什么。
10:05
是一个空的对吧,那这个就是你基于拉取模式的一个点能听懂对吧?啊其实呢,里面很多点都是很相似的啊,China跟S之间的一个通信问题啊,这块呢,我们所说的消费者呢,他是主动拉取的一个点啊,主动拉取的点要关注一下啊,两种模式啊。
我来说两句