00:00
好,同学们,接下来我们进入第三章,用Java进行实战实操编码,将我们的程序编写好消息推送到MQ。言下之意,那同学们就我们讲过那个学生提问老师的那个哈,那假如说现在呢,同学们呢,产生了提问对吧。就是。生成的问题需要给老师,那以前大家呢都明白。直接。发到老师这里。好,那么这是。老师,那么言下之意,我是不是要消费处理?学生的提问。对吧,那么前面讲过,如果说。干嘛一堆一堆的学生过来那么一个一个的问,那老师是吃不住的。而且。你问的问题,可能老师一个学生过来,我有三个问题要问问你,那你们都明白是学生提问快还是老师处理的快啊,那肯定是不是他快,那么这样会导致什么多个学生呢?干嘛在这耗着,那言下之意是不是产生了堵塞好了,那么所以说我们呢。
01:22
直接把这种问题呢,直接拜拜我们在这儿,现在呢,给大家呢弄了一个东东。好,我们看MQ。对于我们消中间件,我们讲过了,这个东东可以把它当做班长,那么好了,那么接下来我们呢,需要用我们的Java程序生成我们的什么消息,也就是我们那张提问卷,那张提问卡,好了,杨哥很忙,别找杨哥麻烦了,咱们先给班长,班长只负责收集,那么上一讲我们的MQ61616和8161这两个端口,同学们都记住了吧,他这已经跑起来了,那么现在有问题。
02:09
提给MQ,然后杨哥呢,再从MQ这干嘛?获取提问消费,一个一个的来处理同学们的问题,完活以后干嘛?我们呢,中间好同学你既然提问上面留了你电话,我再给你弄过来,再回答你一步的同心,那么好,接下来我们呢,就要来看一下我们如何用Java编码来实现我们的消息的。推送和消费OK,那么呢,同学们兴不兴奋?我们现在马上是不是要实现用Java编写MQ的程序了?慢慢的从理论过渡到代码实操,那么呢,激动的心,颤抖的手,Java编程手牵手来吧兄弟们,OK,第一步,Idea新建,没问工程,那不废话,那杨哥呢?
03:04
为了节约时间,因为呢我时间太紧张了,所以说怎么建工程,建好这些包我就已经搞定,包括maven的POS庙需要引入哪些架包,因为因为大家都很简单是吧,我这儿给大家演示你新建一个什么工程,Maven工程,这就不废话了,好了过接下来。第二步,那么同学们新建了以后,那么大纲会发给大家看,那杨哥我们建的包名看硅谷active MQ。工程名字active MQ DEMO,好,这些CTRLN1张会吧,那么大家请看,粗糙的讲一下,粗略的讲一下。Active MQ所需要的架包就这两个,那么大家看active哦,我就喜欢用这个啊,打包5.15.9版本,然后这个是后面我们要跟。Spring整合以后的一个基础包。弄进去,那么接下来这两个讲过了,以前这些都说过对吧,日志book还有记unit,那么对应的版本,那么一张搞定。
04:10
那么好,接下来我们就要思考一个问题,我们怎么来编写标准的?干嘛消息的推送,发送的Java编程到MQ,然后消费的怎么拉取获得消费这些消息呢?那这个时候我们来看一下GMS的。注意这个GMS呢,我们后面会讲下一章。Java消息服务的意思哈,它是规范,MQ的规范,其实说穿了我都不愿意给大家说active MQ,我喜欢用宏观的角度给大家讲,我们现在讲的是什么MQ消息中间经验,那么MQ再上一层是什么呢?你可以把它理解为就是GMS,那么言下之夜就是Java消息服务的一种编程规范,它是Java e技术体系的一种,好,那么这个呢,我们第四章再说现在。
05:03
缩回来不展开,那么呢,就靠主干。怎么编?那么下面来看一下对于Java实现编码的总体架构好。来同学们,那么B这种东西都是成熟的Java编码,它一定有一定的规范套路,那么这个时候我们呢,来看一下它的编码套路有哪一些,那么和我们以前学过的。GDBC,大家进行一下对比,好,同学们先来看一下我们的大纲图,一个文字都没有,一图胜千言,要求给同学们一分钟,先来当场课堂自学,然后杨哥再逐步细讲。好,同学们,那么开工。杨歌三板斧。三步理论实操小总结,那么不浮躁,踏踏实实一步一步来。第一步先学理论,大家看connection factory干嘛创建了一个connection connection什么是不是叫连接呀?那么一样,就跟我们的gd bc Java调用MYRCQ,这是以前我们学的,现在变成什么?Java调用谁MQ消息中间件active MQ一回事,Java可以连。
06:24
My Java可以连red Java可以连lookieper Java可以连MQ,一样的套路,一样的模板,还是熟悉的配方,还是熟悉的流程,那么好过了,第二步获得了连接,也就是由工厂获得连接,由连接获得session,那说错了。就是我没讲,根据大家现在的经验也应该知道,真真正正干活的是不是就是我们这个3SH,那么大家请看这个三可以通过它这个对象创建什么message消息,这个消息是不是就是杨哥说的,同学们,我们约定好一种格式啊,你们给我发消息,主题提问人提问人手机号问题正文好,永远要有这四个选项,写好了以后,这张A4的纸交给班长MQ,严格得空把你们处理,回答你们的面试题好了,你不用在这等着号召,不耽误你时间,你可以先走了,回头杨哥做完了以后找你异步调用,那么言下之见,肯定是按照杨哥的一种格式啊,按照g ma4啊,它的。
07:27
约定和规范,用它的API创建一个消息,创建完了以后请看这个session是左中右三个路线,创建好消息后干什么呢?你看create,它又产生谁?消息的什么生产者?那么言下之意是不是有点像我们的什么微服务,讲STEM cloud的时候的微服务的什么生产者,那么这个一样消息的消费者,那么是不是就是我们微服务的时候的什么?调用者,那么言下之意,生产调用,生产消费一个意思,那么最终你看send to什么东东,Destination destination什么意思啊,目的地。
08:09
那么说白了,目的地。这是一个粗略的说法,再细化这,那么这个目的地又有什么呢?两种,一种叫队列Q,一种叫脱皮口主题,那么发布订阅模式,那么言下之意就是说你产生的按照我们约定好的格式啊,写好的这个提问,写好的这个消息发送。或者是消费,那么从哪从MQ的目的地里面去,哪个目的地里面去找啊,那么这个目的地要么是什么队列,要么是什么topic皮考主题,好,这个就是它先前的编程规范,那么好,同学们根据这张图,我们不妨回忆一下以前基础课程GDBC我们的编码套路,来同学们通过GDBC操作MYSQL数据库一些通用步骤,是吧,123456啊,这个注册驱动建立连接,请看这是不是有个connection,那么你回答我这事,这是不是也有个connection,没问题吧?那么好一个套路,这边创建了运行central statement,那么大家看connection.create statement,这是GDBC那个层面,那么。
09:23
过来,这这串着那个什么是不是叫session呢?哎,大家请看,那么这个时候就说你就不会有这种感觉,说哎呀it的东西怎么这么多学不完,今天学MYSQ,明天学register,后天学MQ之active MQ这么多东东,那么。永远记着杨哥讲过这句话,以不变应万变,我们要学的是不是这些不变的底层的这些流程模板套路啊?那么大家看最后运行语句干嘛?处理运行结果,最后释放资源,那么一样通过GDBC我们来套路我们的GS的也就这么回事。好,那说白了就是现在先第一板斧先理论,那么大家就应该知道我们的编程套路肯定是跟上图中这些对象有极大的关联,后续只要按照这个官方流程图编下来即可。
10:20
好,那么最终我们来看消息生产,消息消费,学生有提问,老师要回答,好的,那么接下来我们呢,粗说一下目的地destination,因为上面这些啊,我相信123456这六个块,同学们呢,应该有GDBC的基础,有以前Java访问red Java访问MYQ。Java访问keepper的基础都不难,但关键可能有这个destination,让弟兄们呢稍微有点迷惑,那么好,这个destination不凡杨哥呢,就再给大家呢讲一下,那么好,同学们原来呢,我们呢已经写过上过,杨哥是不是给大家上过一门课,叫什么?
11:06
GVM。好,同学们都明白,那么假设哈,我们这边有一行代码,我们这写了个什么尿诶,New book,同学们,以前杨哥会问大家说,兄弟们,这个对象你到什么地方了?同学们呢?如果在第一个月基础部分陈老师给大家聊的时候都会说,兄弟们,你的这个东东叫实例,对象放在什么地方,是不是放在。Java的堆内存里面啊好了,这是第一个月大家学的那么一样,这。我们呢,也可以获得同样的类似啊,那么兄弟们,我们这儿产生了,我们对比着来学啊,同学们。产生了一个消息,那么兄弟们,你们这个生产者把消息发送到什么地方啊哦,我们这个生产者把消息发送到哪啊,发送到我们的destination,那么这个时候干嘛?是不是俗称我们的东东叫什么目的地对吧?那么这边是不是就是俗称我们的。
12:15
对内存好了,对比着来学,那么到后面,到杨哥这GVM给大家上了,陈老师给大家上的是Java基础入门课,到杨哥这拔高上GVM变了,我们会说那兄弟们你有一个对象,你又在什么地方?堆内存,那么到杨哥这再具体点,堆内存的什么地方,那么兄弟们都会明白,堆内存的话,无理上是不是主要分两块,逻辑上分三块,以加二八为例,我们都明白是不是新生区,养老区,云空间,这是逻辑上,但是物理上是不是新生和养老啊,那么言下之更再具体一点,一般我们留一个实力对象,是不是在堆内用在哪堆应内存,再进一步堆内存的什么地方,堆应内存里面的是不是这有个东西,东西叫啥?是不是叫我们的什么新生区。
13:11
OK,那么一样,我们这兄弟们,我们这生产了一个消息,那么假设这个消息。Message,那么发发送到哪,发送到消息中间建的目的地呢?那么再进一步说,那么这个目的地有两个地方构成,那么这个目的地也是有两块构成,像这个一样对内存叫新生养老,那么目的地哪一个目的地再进一步请再深化一点,那么这个目的点一个就叫队列,一个就叫主题,那么所以说这个时候干嘛?我们目前就先拿这个Q队列作为入门的讲解,那么第二个讲主题有点类似于我们我们的GVM对内存,那你别跟我说现在堆里面堆什么地方,堆的新山区还是养老区一样,发到哪啊,发到目的地,那太笼统了,再细一点,目的地什么地方队列或者主题,那么所以说同学们过呢,我们呢,Destination就是对于这个目的地主要。
14:19
到的有两个,一个叫对列,一个叫主题,那么请大家看一眼point two point点对点干嘛?也就是我们的一对一,请看Z的目的地,发到我们MQMQ的目的地这那么MQ的目的地这个叫什么队列?那么请看一对一什么意思啊,有点类似于张三。发了一条短信给李斯,这个是不是一对一啊,那么好,这是一种目的地之一,叫队列,那么第二个publish and subscribe,这么意思,什么意思啊,发布订阅,这个叫什么一对多,请看topic,这个叫什么?主题有点类似于就是我们这儿的,那么你是你这个目的地。
15:04
有点像今用的堆内存,堆内存再细化新生养老,那么你这个目的地痛快的目的到什么地方,对列还是主题,那么这个时候就是我们这的Q还是topic皮考,那么杨哥什么叫一对多呢?言下之夜,上面是一对一,张三给李四发了一条短,下面这个叫什么?你们关注了上硅谷的微信公众号,有100个学生关注了上硅谷的微信公众号,只要是关注了干嘛?订阅了我们上硅谷,每周会更新我们的上硅谷的微信公众号,只要是订阅关注了我们的微信公众号的,我们是不是一条消息同时通过微信发给多个人呢?OK,那么所以说上面这个就是一对一只给一个人,下面这个就是一对多,给所有的订阅用户一个到多个,好,那么这个整明白了以后,我们呢,把理论知识搞定,那么下面开始以队列。
16:04
为突破口,来详细的讲解如何手动编程,然后访问。我们的MQ把消息推送给MQ,把消息从MQ取下来直接消费。好,那么同学们先把理论知识整明白,那么下一讲我们再给大家进行实操编码。
我来说两句