00:00
来,同学们,我们继续上课,那这三种情况大家都清楚,都练了吧?啊,有些同学稍微有点晕哈,不难,还没讲难的呢,这个在严格看来只不是个入门hello味的级别,那我还没有干坏事,那么什么意思呢?就比如说哈,我现在直接给你干一件事,比如我把QMQ宕机了,故意给它关了,那么请问你的消息会有些什么情况?那么又有一些不同的案例?好了,那么这个呢,等我们讲后面高可用的时候,我们再聊,现在呢,我们先讲呃,正常的入门案例哈,正常的情况,那么上一讲我们已经完成了队列,那么下一讲我讲过了队列,现在大家明白了吧,一对一。那么。目的地我们以队列,那么接下来是不是要说说主题了?那么来主题是什么?一对多topic皮考发布订阅好老规矩,二话不说。那么同学们呢?先来看看脱皮考相关的理论知识,然后我们上手写代码,不要着急啊,等你看完代码以后,你会发现如此之简单,因为只要你队列跟着杨哥详细认真的整明白了,后面干嘛非常快,因为我的技术风格就是推崇慢慢来。
01:19
才比较快。一步一个脚印,绝对不浮躁,扫帚不到,灰尘不会自己跑掉。你听懂了,听明白杨哥讲的是什么东东,自己也动手练过了,有这个基础你再来看,你来学,这个快的让你都觉得不敢相信,秒杀好。那么再说白了是吧,所有笔记啊什么的都给大家都写了对吧?两种写法呀什么的,那么当着你们的面,我是亲自敲的,你不敲一下说不过去哈。那么接下来我们先来看看主题,那么topic很简单,微信的。订阅的公众号,你要订阅了别人才给你发送,那么来吧。
02:04
首先特点如下,生产者将消息发布到脱皮的当中,每个消息可以有多个消费者,属于一对多,这句话就一句话整明白。上硅谷微信公众号,那么上硅谷将我们每一周产生的。微信上的一些文技术文章,学员感谢信,还有一些上硅谷的趣闻,同学们的这个在上硅谷的学习工作生活的这各种照片,比如说我们的拔河,那发到上硅谷的微信公众号上面,那么对于我们上硅谷感兴趣的订阅了的,那么就能收到生产者和消费者之间。怎么着?注意。发短信是没有,微信公众号是有的,有时间相关性,为什么一定是什么?你要先订阅,我对你发布才有效吧,你根本就没有订阅干嘛?我根本不可能给你发送,也就是说我们在你的订阅之后才能对你发送。有个时间上订阅某一主题的消费者只能消费自他订阅之后发布的消息。言下之夜,假设你是2019年六月份订阅的,那坦白讲,2019年一月份的上硅谷微信公众号的消息,你是不是不会可能收到啊?好,这个都好理解哈。
03:18
那生产者生产的时候脱皮口不保存消息能理解吗?它是什么无状态的?那么什么意思呢?就是我一生产了,我一丢出去,我就不管了,有人订阅,谁订阅了谁接,无人订阅,那么就是一条什么废消息,OK,所以一般是什么?先要启动消费者,再启动生产者,也即先要有订阅者,那么我们的推送者才有意义。好,再次强调啊,先要有消费者,再启动生产者,那么也就是说topic皮口跟这个队列的玩法不一样,那么我要先订阅才能发布,干嘛?只能消费自他订阅之后发布的消息,先订阅后发布哈,那这规范允许客户创建什么持久订阅?
04:12
一定程度上放松了时间上的相关性要求,允许这个消费者在他未处于激活状态时发送消息,那么说白了就是我们的什么微信公众号,那么大家请看。那么。发布到MQ的队列里面,那么有几个人订阅了,就几个人订阅者才会收到?好,那么不多说了,我们来看看上述案例,那么同理也是有我们的,是吗?发布注意不是队列了啊,主题的什么生产者,订阅主题的消费者。那么来重点先要启动订阅,再启动生产哈,那么待会儿我们来会演示,那我偏偏要反过来看,先启动生产再启动订阅呢,好了,废话,那么下面呢,我们呢,直接。
05:02
圣诞码。首先,老规矩上一讲。GS produce,这是我们以什么队列作为生产者弄出来的。那么好,接下来你们。过来,你会发现东西都是相通的。这个没有任任何问题吧,那么来头皮扣。连线,那么我们呢,基本上把队列。身体也好。假如说这个队列,那么干嘛呢?我们订阅了上硅谷的微信公众号topic皮考at硅谷好,那么言下支线这个呢,也就不是Q内了。那么这个时候我们。Topical内,那么坦白讲,这一步是不是叫改吧改吧,这是第一点,第二点切记杨哥说过了,我们这边是个目的地,那么言下之意,现在的目的地是什么?是队列还是主题?是不是变主题了。所以说这边。
06:06
托皮卡这边。脱皮卡,然后这个时候脱皮卡。丢到这儿,那么来。我们呢,直接要求的是这个,那么是不是又是这个导包又给我们出现了问题,那么来同学们请看干什么呢?创建点create topic口,那么把我们的上面的topicical name弄过来,直接创建好同学们我们的。从主队列到脱皮,考主题的就改完了。简不简单,那么来吧,我们这个托皮克内现在呢,消息发布的MQ。那么再加一个队列,消息发布到MQ完成,代表它是队列的。代表它是主题的哈,口误,好,那么接下来这就改完了,对,这个就是什么?我看同学们瞪大了眼睛,就这么一句话。
07:07
好了,那么接下来我们的老规矩参考着我们的什么消息的?消费者队列消息的消费者,我们也来做一个什么,直接来做一个脱皮口的消费者,那么过来这儿我们呢,直接呢,把这个也删掉。好,那么过来这儿,那么大家看这些呢,由于前面代码都已经发过给大家了,我杨哥呢,为了眼睛舒服也让同学们呢,干嘛呢好看,那么我就把这些注释呢,就弄掉一些,那么这一块来,那么。首先讲过了,是不是一一对应啊,那么脱皮口现在一样,这边也就叫脱皮口了,那么肯定会报错,那么报错没关系,过来我们现在是不是只需要我们的。脱皮口啊,那么大家请看这块脱皮口完活那么OK,把我们的监听器一开起来,彻底打完收工,嗯,就改完了。
08:11
对,就相当于把我们的目的地从以前的队列改成主题脱皮考,其他的原样照搬。OK,那么当然,如果你想玩点花活呢?我们讲过这个message,消费者的话设置监听器,那么这是一个什么message listener兄弟们,这是什么接口?这个接口里面有几个方法一个,那么这样的话干嘛?是不是秧歌的小口诀走起来,拉姆的表达式我们可以用起来啊,那么这个时候干什么啊?那么来吧,把这堆代码呢在一注好,那么message consumer过来,第2SET message就这么一个东东,那么言下之际是不是可以用我们的,由于这个是什么,在里面是丢一个message listen的接口,那么由于这个接口里面刚才看了也只有一个方法,那么就可以用这个接口里面on message,针对于on message这个方法来用拉姆达表达式,那么好吧,走起来干嘛拷贝。
09:11
小括号,然后呢写子右箭头,然后呢落地大括号,那么这个时候由于只有一个参数干嘛,参数类型也可以省略,那当然这个你不能省了,听懂了吧,这就过分了,好,我们接下来干什么,是不是把我们原有的业务逻辑一粘?来兄弟们,那么这样是不是消费者接收到了消息,那么干嘛这个时候。脱皮口消写这一步啊,同学们没有任何问题吧,那么把上面的一删,因为这个呢是传统的匿名内部类的写法,那这个呢,是我们是新版的,是不是拉姆达表达式的写法,那么大家请看一下,现在我们的代码的话,是不是越来越简洁了,好,那么两步写完,那么大家请看一下上手案列,干嘛就只改红色的topic,皮内就只改什么红色的topic内,说白了就目的地换了,那么这个时候同学们请看,先要启动订阅,再启动生产,不然发送的消息是什么废消息,那么好,同学们。
10:11
我们队列不用管了,那么主题,那么这些FQMQ是些什么?回头我们再闲聊,那么这个先全部删除,这个不是我们的,因为我们现在是不是只关心硅谷啊,那么来大家请看我们的脱皮口主题现在没有名称,消费者数量,消费的排队,出列操作等等,好的,那么首先。我们呢,现在的程序变成了topic口的生产者,Topic口的消费者,那么先演示什么正常的,再演示异常的,那么正常的是什么呢?来同学们,首先我们讲过了两大模式的特性。现在一对几。是不是多啊,他们都来订阅同一个,那么好,那么假设哈,现在。我是一号消费者,那么来,同学们,我点。
11:07
走人好一号消费者,那么这个时候来看看我们的主题。什么情况大家呢,可以看一下现在话题,哎呀这个不好看,还是换换成英文吧,你看to西考at硅谷上面的先不要管哈,同学们,上面的我们后续单聊,现在就说跟我们的内饰系统,它自动自动填充的哈,那些先减轻大家的学业负担,不要管我,你就管我们自己命名的,那么现在这个主题名字是不是叫上硅谷的微信公众号,假设叫topic皮at特硅谷几个消费者一个你看消息入兑零个,消息出兑消费零个,因为还没有发送嘛,好,那么现在我是一号消费者,那么大家请看我是二号消费者。来搂眼,大家看一号吧,二号吧,还记不记得上一讲我们讲队列,要是有两个消费者在这候着的话,是不是一人一半啊?那么对比一下,到了我们的脱皮口了以后。
12:01
队列是一人一半,脱皮口你们觉得应该是一人一半呢,还是说家家都要有好,那么再来一个,那么现在什么三号消费者吧。来,兄弟们。我是三号消费者对吧,那么这我们来改吧,改吧,我呢还是简单版,那么。这次啊,我发布三条,那么大家可以思考一下,现在我们在主题订阅了,那么OK。我点脱皮口,那么这个时候大家看number of consumers有三个。没有消息发布了啊,现在三个消费者是不是订阅关注了我们的某一个微信公众号,好,那么现在那么大家思考消费者一号二号三号,我这这次发几条三条,那么思考一人一条。第一个人,三条,230条还是三个人,阳光普照,人人都有。大家思考,现在我们是脱皮口已经换了啊。
13:02
好,那么同学们,我们看看你们各自写在纸上的判断是否正确,下面各位同学,各位观众开牌了,那么这个时候。Topic口的生产者,我们来搂一眼。好,Topic皮口内幕发送到,那么可完成,大家请看从左到右一号几条,二号几条,三号几条,那么不用减,现在这个数字没有刷新之前是300,那么刷新之后大家觉得应该变成多少,那么这个时候大家很抱歉,这个时候大家搂眼是不是变成339干嘛?总共有三个消费者,每一个消费现在进来了三条消息,每一个消费者都要看到,那么这个时候是不是三乘以三刚好等于九啊,那么所以说这个时候干嘛,我们的topic皮口的归国,我们正常情况下符合我们刚才的诉求。先启动了订阅,再启动了生产,那么这个时候干嘛有人订阅了,我一发布,凡订阅者皆可收到,那么这个时候我相信同学们再来看看这张图,我认为应该有深刻的体会了吧。那么再来看看杨哥所一再强调的这一张小图,我们自己画的一个消息,发到消息中间键要有个目的地,就像一个飞机一样,起飞要有落地,你停在哪个机场,这个目的地是哪个机场,是南边的这个机场还是北边的这个机场?OK,好,那么同学们,这个就是我们什么?
14:39
队列入门的上手案例。那么我相信干嘛和我们的。前面的这个队列是一致的,这个主题脱皮口干嘛,就是改一个目的地,其他都一样好。那么这个入门案例现在要求大家写写这个主题脱皮课。
我来说两句