00:00
好了,那接下来呢,我们来看一下啊,上午呢,我们在我们的service s套当中想要发送我们的消息啊,向消息队列发消息,我们呢已经啊将我们上午创建的这个rabbit MQ的依赖呢引入到了我们的service维思号这个模块当中,那这样的话呢,我们的service号呢,就能够去和我们的rap MQ建立通信了,但是建立通信的前提呢,是基于呃要把这个基础的连接建立起来,所以呢,我们上午那个配置的一个email的这样的一个和呃M和这个MQ连接的这么一个配置,那这个配置呢,就呃写上主机名,写上端口号,写上你的虚拟机啊,写上你的用户名,写上你的初始的啊设置的pass密码就可以了,那这个大家注意根据你自己的实际情况,把需要改一下好,那这两个步骤做完了之后呢,我们呢,就可以写我们的业务了,我们的业务。
01:00
能是这样的啊,就是我们呢,想在我们的所有的跟资金相关的这些业务方法当中呢,去发送我们的消息啊,发消息那么像,也就是说像MQ发消息,像Q发消息的话呢,比如说充值,比如说回款对吧,比如说放款等等等等,我们都想去发这个消息,那发这个消息的话呢,我们就呃希望呢,在所有的这些回调当中去发。这能理解吧,就你不能在发远程请求的时候去发,因为你发远程请求的时候他还没成功呢,对吧,充值一定是在回调的时候,他已经充值成功了,然后调用我们回调了,然后呢,我们最后的时候呢,再向消息服务器去发消息啊,跟消息服务器去做一个连接,那发消息的过程当中呢,比如说我们找到我们的充值的这个代码了。找到我们的号啊好号这个里面呢,我们找到,嗯,之前我们充值应该是在user看的很透了里面的,嗯,然后这里面有一个用户充值,然后用户充完值之后,如果充值成功了,它会有一个一步回调,一步回调当中呢,这边有一个not five,好,那我们呢就在这个。
02:23
这个是窗日吗?用户充值一个回家哈,好,那么我们就在这个啊,那OK,在这个方法当中的最后这个位置呢,我们就可以去向消息服务器发消息了,发消息好,发消息呢,其实我们现在这个消息呢,很单纯,就是想让我们的短信服务器呢去接收到这个消息,然后呢,就根据我们的消息的内容去向相应的手机号发送相应的内容,那我们消息的内容呢,就是手机号和你要发的消息,明白吧,所以呢,我们就把我们的手机号和要发的消息是不是刚才就统一的封装到了一个对象里面啊,就是这个对象叫SMS to,这个对象啊叫mobile和message,那也就意味着在这个位置我们呢要去new一个,就是在发消息之前,我们要把这个消息对象给它new出来。
03:23
SMSCQ啊,然后SMSCq.site我们要把我们要发的这个消息的对应的手机号和要发送的这个消息的具体的内容给它放到这个地方,那我们发送的呃消息的内容,比如说我我就想发那个。叫充值成功啊,然后就写充值成功,然后充多少钱什么的,你都可以往这上写啊好,然后呢,接下来呢,这个mobile从哪来。告诉你。
04:00
某的话。啊对,拍了吗?是就从这个里面可以找一找线索,因为这个面我们我我们只有这一个线索,对不对啊,参数里面只有他剩下其他的都是从一个地方拿过来的,所以说呢,我们就得看一看他里面呢,有什么东西能为我所有,那我们就找一下,找一下我们的这个互联网金融哈,然后找一下我们这个,嗯,资料会复宝文档。好,那我们来看一下我们的充值的回调的这个参数都有什么,所以呢,我们找到我们的充值接口。用充值,然后这是结果,结果这个里面呢,有一个参数呢,叫班跳的,除了这个参数跟人有关之外,其他的好像就没什么大关系了,所以呢,我们就可以通过这个buy code来间接的去找到我们这个人的mobile,拜啊,这是可以的,对不对啊,所以呢,我们现在呢,就可以写一个业务,这个业务呢,就是通过班扣的获取手机号的这么一个业务啊好,那么接下来呢,我们就打开我们的SRB,然后呢,再。
05:20
通过班扣的获取手机号,这个两个呃,数据呢,应该是在user in里面有,所以呢,我们打开user in的service。User input service在user input里面呢,我们写一个业务方法叫做通过啊,返回的是我们那个手机号啊,Get the某by code。好,然后所以呢,这块我们就写一个street班扣,然后呢,我们把它实现一下,好,接下来呢,我们就new吧啊,Q u new write,然后呢,我们查的是user info,这样的话呢,我们用这个user info per writeper取EQ,然后这里面呢,我们写band cold,然后这面呢我们写啊。
06:26
Ban code对吧,就它好,然后接下来呢,我们就可以base map.select one,然后呢就是userin for per wrap,然后呢,我们就返回一个userin for,然后呢,就嗯,直接return就行了,User in for mobile好,那这个业务还是比较好分析的哈,那这业务写好了,写好了之后呢,那我们再回来到这个向MQ发消息啊的这个方法当中,也就是说在这个地方呢,我们就想向MQ发消息,发消息之前呢,我们把我要性式取出来,取出来的话呢,那我们就用刚才我们的这个user in for service这get mobile来帮,然后我们从前面已经拿到的这个班扣言呢,就获取到我们的mobile,接下来呢,我们把这个mobile我们就放在这,放在这了就可。
07:26
明白吧,这是这样的,然后接下来呢,我们呢,就在嗯,接下来的这个过程当中呢,就真正的去把这个消息发送出去,那么就是MQ service,这个MQ service哪来的呢?就是我们前面那我刚才不小心偷偷把它引进来了,其实没有啊,可引一下你引一下。明白吧啊,你引一下啊,我是上课之前试了一下,然后我就引进来了,引进来之后呢,就一个是using service啊,一个是MQ service,把它引进来,引进来之后哪哪引进来了,是不是刚才这个rabbitq里面我们定义的还记得不写完了可能忘了是不是这个m two service呀,然后并且咱们把它当成一个service放在spring容器当中了,已经好,那么我们就直接就可以用这个m two service了,然后直接调用里面的这个s message,这个方法明白吧,就可以了,好,那接下来呢,我们就用这个m two service。
08:31
然后呢点sign message啊,然后呢,这个这个里面呢,它接收三个参数,一个呢就是你的交换机的字符串,一个呢就是你的路由的字符串,一个呢就是你要发送的那个消息本身啊,然后呢,发的消息呢,实际上这里面咱们定义的呢,就比较灵活,任何一个object这的都可以发回来啊,所以呢这面呢,我们就先写咱们的MQ里面有一个是exchange。
09:06
MQ con。不是不是的哈,MQ constant是吧?啊,然后里面有一个it,甚至topic SMS,就是之前咱们定义的那个交换机的一个名字啊,把它定义在这就当然了,你在这个地方直接写的型号有没有问题,然后接下来呢,第二个就是我们的路由MQ。也是constant DR,然后应该是这个routine SMS item啊,这个是我们定义的这个路由的名字啊,然后呢,接下来就是这面啊,我们要发送的消息本身,那我们直接把这个SM SD to上传过去就可以了,所以这块呢,其实就是向MQ服务器发送消息啊,向MQ服务器发送消息好那呃,如果现在你重新启动服务。
10:13
把这个看你重新启动一下。你现在点击充值,充完值之后呢,嗯,它调用这个回调方法,那它调用完这个回调方法之后呢,它一定就会在最后去调用这个发消息的方法,对吧?发消息的方法呢,调用了刚才咱们写的三个班,那他呢,就会打印一个发送消息,打印一个发送消息,那么在这个过程当中,会不会有消息发送到我们的MQ服务器当中去呢?注意我发一下啊,我就用这个吧,嗯,点击这个。
11:03
充值哈,然后点123456,然后点确定这个充值肯定是成功的,我凑很多回了,这个没问题,然后呢,我们看一下控制台。控制台上呢,有没有就是。嗯,关于发消息的。你看一下啊上麦。这个报错应该是之前咱们那个报错,就是检验登录那个那个没关系,就是你把present里面的挪到mountain里面就可以啊,这种这种猫诉你就挪一下,或者是不管它也可以啊,这没问题啊,然后所以呢,这个过程当中呢,它其实是不会真正的去发消息的,但是它虽然调用了这个发消息这句话,但是呢,我们的这个呃,MQ当中,它实际上呢,你会发现这边有一个。
12:05
消息,但是你们那里没有注意,你们那里没有啊,为什么你们那里没有呢?我们先来分析代码,因为我是之前测过的,他已经被创建出来了,呃,什么东西被创建出来了,就是这个连接被创建出来了,圈都被创建出来了,哎,圈这个词被创建出来了,然后我测过成功的发消息,我搜过成功的监听消息,而且exchange下面的路由以及Q都创建出来了,这种情况下你就可以在这个地方看到消息了,而且这个消息呢,你发现它是一个ready的状态,他一直呢,没有被监听,因为我们没写监听,对吧,我们没写监听啊,没写监听呢,所以这个消息呢,就就没有监听啊,就没有没有监听,他就一直在这个地方准备着,明白哈,一直在这个地方准备着,好,那么一直在这个地方准备着,就什么时候有监听了,那么什么时候呢,就会消费掉这些地方就变成了,明白了吧。但是我要提醒大家,现在我。
13:05
这个地方有,但是一会你们测的时候它是没有的,为什么?因为你们测你是第一次测,你不像我已经走完了一个监听流程,我因为之前测试过是吧?啊我上课之前我要备课吗?我测试过,所以是有的,那么你们没测试过的话,会有一个什么长期的呢?就是你会发现发消息的时候。我们指定了exchange对吧,指定了入侵key是不是,然后前面通过我们的配置文件是不是建立了连接呀?啊建立连接的过程呢,实际上就是什么东西有啊,啊看一下这是source啊建立连接的过程实际上就是什么主机啊,虚拟机啊,这些东西其实都有啊,连接也建立出来了,好什么没有。那刚才咱们说有连接也建立了,然后这channels实际上就随着连接就建立起来了,刚才我们exchange也建立了,Exchange下面呢,它的这个,呃,路由呢,实际上就在这个exchange里面,就绑定到这个exchange上了,然后呢,接下来呢,是没有excuse me,就是我们在发消息的过程当中,你会发现我们并没有指定队列的名字吧,你没有指定队列的名字的时候,那么你这种消息你是发丢掉的,就是这个时候你的消息是丢掉的,是没有的,明白吧,所以你必须得干嘛呀,必须得把我们的监听那一方给它写,先写好,然后让整个应用程序在子不容器当中都成功的启动了之后,然后咱们再发,有发送有监听了,那那个时候队列的创建出来的,因为队列的名字是在监听那边指定的,明白吧,在咱们这个spring整合当中啊,队列的名字是在监听当中什,所以大家不要。
14:53
嗯,按照就是之前咱们测试rabbit MQ的基本测试用例那样去测,就先嗯这个启动消息发送吧,然后一发一看找半天没有哈,你不但这个没有啊,你你第一次做的时候,你连这个都没有。
15:09
就是连这个关house都没有明白吧,在这个大家一定要注意啊,所以测试的时候一定要干嘛呀,就是做完我们刚才说的这个步骤之后,先把后面的这个监听消息先创建出来,然后这样的话呢,才会有哈,好,那嗯,接下来呢,我们就来看一下监听消息这边的一个创建的过程。
我来说两句