00:00
同学们,我们本节课呢,讲一下主题交换机的一个实战。上节课呢,已经把主题交换机的这个作用功能是吧,一些优点缺点都说了一下。完了之后呢,我们本节课呢,把这实战演示一下。实战呢,重点是讲解一下主题交换机到底是怎么用的。那我们要结合几张图呢,两张图,其中一张图就是这张,哎,就是这张,我们把这张图呢,咱们截一下拿到下面去啊,进行对比的查看。完了呢,来到这里对,来到这里之后呢,我们把这两个放一起,哎,为什么要放一起呢?是因为我们的实战是就根据这两张图来写的。其中先说说。第一个我们一会儿呢,势必要写一个生产者,对生产者。他要发消息给交换机啊,这个叉就是交换机啊交换机。完了交换机呢,再通过这些个规则,或者叫路由K,或者绑定关键词是吧,来进行路由到队列一或者队列二就叫困一和括号。
01:13
对,完了呢,这个呢,他们之间的绑定关系是用这张图来表示的,哎,这张图呢,是咱们他的一个绑定关系,哎,绑定之间的关系,你可以看到当前名字都起好了,这个交换机的名字叫topic logs。对,完了三个队列吗?注意看啊,不是三个队列,是两个队列。分别叫队列一和队列二,坤一和坤二对吧?完了呢,坤一和坤二呢,绑定的时候由于困二注意绑了几次,绑了两次,对坤一绑了一次,坤一绑的是这种规则,而坤二绑的是这两种规则,哎,跟我们这张图呢,其实是一模一样的,你看这个就是你看绑了两种规则。而且我们的交换机的类型呢,叫什么叫topic主题交换机在类型都写好了。
02:05
所以呢,按照这两张图,我们代码如何写的是吧,把代码写一下。行,那我们接下来把代码就按照这两张图啊,把它写一下。写之前呢,这么的,我们把这两张图呢,再整体的结义下来,定在这个所谓的这个桌面是吧,屏幕上。这个多开啊,这个是吧,这个是把它定在桌面上,完了拿过来诶就照着它写对吧。先把它挪开。对,先把它挪开。挪开的目的呢,我们马上写,开始写啊,先写哪一方呢?这呢要先写这么两项,第一步呢,我们打算先写两个消费者,就是C1和C2,对接收困一和困二的消息,完了之后再写生产者。发消息。是这道理吧,完了呢,我们在写这个消费者的时候呢,顺带要将谁呢?困一这个队列创建出来,完了困二的队列也创建出来,同时主题交换机也要创建出来,同时他们之间的这个绑定关系是吧,也要绑定出来,完了呢,等绑定好了再将,呃,再写一个生产者来发消息。
03:24
对吧,所以我们大致呢,代码要分几步呢,分两步啊,第一步呢,先写。第三步吧是吧,第一步先写C1,第二步呢写C2,第三步呢,写这个生产者就完成了本次的这个案例的实是吧,案例的学习,实战的学习啊。所以先把它这么呢,先把它隐藏起来,哎,我们就先不看了,放在放在上面是吧,哎在这呢,完之后,紧接着我们来到这边。去新建一个文件夹。啊,文件夹已经到第第七个了是吧,Seven是吧,Seven seven当中呢,我们创建一个这个接收是吧。
04:04
Receiver。Receive logs,对,之前都是这个完主题模式啊,Topic完了,这是一号消费者是吧零一。你注意看啊,这张图在这呢。是C1的意思是不是?哎,你要建立的是第一个C一来,我们放这吧,放这儿的话还能盯着一点是吧,装进C1,所以这就是C1了,C1完了你再写C2是吧,先别着急,先把C1写了啊。之后进来,进来正在往上挪一挪,先不着急看它。这个就写着这叫声明。主题。咱们看一下哪个题啊,主题交换及及相关队列。对。这个呢是消费者一号是吧,消费者C1号。
05:00
接下来我们定义一个交换机的名字啊,这交换机的名字呢,咱们也都起好了吧,哎,交换机的名称。名在这呢,为什么把这图截过来呀,交换机的名称叫top个,所以说你先写一下。字符串类型,哎,X。Change_name等于叫topic_logs。照着抄的,按照图抄的,你看交换机的名字嘛,把它大写。对,大写。大写完之后,紧接下一个,我们紧接着开始进行,呃,接收消息。是吧,接收消息啊,把它挪到对挪就就放这吧,盯着点慢点写啊,我们来。接收消息呢,写的就是一个main函数,对这个main函数里面呢,我们第一项就不用再提了啊,写太多遍了,肯定是直接获取信道呗。
06:02
对,获取信道之后呢,抛出异常完有了信道之后呢,你就可以进行第一个叫声明交换机,对完了呢,用信道点上声明交换机啊X交换机声明。把指明交换机的名字以及类型。那名字在这儿呢,名字都已经写好了。类型呢,用的是一个帮顶是吧,绑定的一个一个枚举吧。对,一个枚举啊,那么用这个枚举也行,用这个直接写也行啊,来吧,我们直接写了叫topic。这就是我们的类型啊,枚举里是这么写的。完了再往下呢,我们是在声明。声明什么呢?声明一个队列对吧。来这个队列的名字呢?我们已经想好了吗?已经想好了,不是我们要想好的,是在上面写了,你看。这儿呢?
07:01
对立一,对立二。哎,是吧,对列一对列二啊,所以这个呢是一个叫队列一,一个叫队列二,我们现在正好写C1呢,所以声明的是队列一叫窥一对。写下困。Name等于多少呢?Q1对Q1好,就它了,我现在声明一下吧。交换机队列,哎,声明。把这个叫队列的名字扔你之后,下一个是什么忘了吧,下一个是不持久化,下一个是不共享,下一个是不自动删除,下一个是没有任何的参数。好。再往下啊。再往下呢,就是绑定对。信道当中呢,进行队列的一个捆绑。绑定什么,绑定他们之间关系呗,你看现在代码写的写,注意你的眼睛一定要放这啊,我们现在写在这里。
08:02
写在这里的话,那我们声明的是队列一同时呢,声明了一个主题,交换机完中间看好绑定是靠这个绑的,对,所以绑的时候。我们来看一下参数。第一个是队列名,第二个是交换机名,第三个就是。绑定的快K是吧,来写一下。首先呢,是交换机的名字拿过来。写反了,不对,先写是看着进来。先写的是队列名,完还是交换机名是吧?来退一步回来啊。所以先写队列名啊,Queen名字,交换机名字,中间用的ROK是一定要注意写星点or n n。支点。行。这就是捆绑关系。一旦绑定好之后呢,我们就可以就算结束了,是吧,剩下的打一句话吧。
09:00
打一句话叫等待接收消息是吧,哎,等待。接收消息完了点儿点儿点儿点儿点儿是吧。行了,完了再往下呢,就负责接收消息呗,把真正的开始接收消息了。要接收消息用的是信道。点上。新到点上,什么点上叫基本的,这叫consumer,是消费的消息,就这个呗。我看一下是他吧。啊是他是吧,行啊下来吧,第一个是队列名啊,队列名我们已经呃写好了。这呢这呢,Q1嘛是吧,Q1嘛,完第二个呢,是问你是否是自动应答,我们就自动应答了,因为我们不要研究这事儿,再往下呢,我们接收消息来接收。接收消息呢,势必又是复制粘贴。对吧,肯定是啦。复制粘贴什么呢?因为它这里面它是一个接口嘛,咱们都已经写很多遍了,是吧,完了这个接口在外面定义一下,完了呢,用的是拉布达是吧,拉布达表达式。
10:09
完里面那是括号。括号。联想不出来是吧,直接粘去吧,完了把把这啊把这这这这地方哎粘一下。在完这个类型不要完了,来个箭头,再来个落地大括号,哎,行了,这就是我们接收消息。完了把这个接收消息的。回调接口是吧,放里面还有最后一个回调接口啊,随便写一写这个是什么了。这是当。消费者取消接收消息的时候的一个回调接口,对,那么平时我们也没什么用是吧,就放在这儿了啊,这个位置负责接收消息。接收消息呢,需要将它转换成字符串类型,因为我们消息是一个消息体。对,是一个二进制。对,完了之后呢,你要输入中文呢,就写上UTF杠八,哎这样就这意思啊,就接收到了我们的呃消息,接收完消息之后呢,你打印一下啊,打印一下就什么呢叫。
11:09
接收消息,接收队列。队列是谁?对,把队列名字写在这儿。再加上一个。再说一下什么的绑定关系是吧,哎。目的空格啊绑定。绑定什么呢?绑定键是多少?把这个键写在这儿。这个剑呢,我们可以直接写死这个剑,当然了你也可以获取,其实这个剑放哪儿了呢?这个剑放在了这个对这个消息的里面。我们消息的理念是。放在这里面了是吧,来。在这个消息的。这个是吧,哎,这个属性的里面。
12:00
有我们的,你看roting k里面不止有UK,还还有交换机是谁呀?Roingk是谁呀?是吧?是否是重新发送的消息啊等等啊。获取到了ROK。这是动态获取是吧,就不用跟这儿,呃,写死了,你把它粘过来就写死了。行到此呢,我们就写完了第一个谁呀C。那C1和C2之间什么关系呢?对不对,C1和C2之间代码呢,绝大多数都是一样的,呃,就哪不一样来看一下,就哪不一样啊我们看一下。不一样的地方。这儿呢?你C1,你看你C1和C2之间就是队列,你队列是一,它是队列是二,相当于这个位置改一下完了呢,剩下的绑定关系就这哎这儿,人家你看你这个Q1是。他那你Q2是弹两个,你得双重绑定是吧?哎,你绑两遍。对绑两遍就行了,那除了这些以外。
13:00
还有不同吗?哎,我们忽然间发现没有什么不同,对没有什么不同,所以说我们可以把C1怎么办?直接复制一份变成C2,我改一改不就行了吗?是吧,把这直接改成零二。对,进来之后呢,紧接着是C2啊,C2完之后呢,交换机一样完,这都一样主题是吧,主题交换机类型都一样,名字也一样,只不过这是Q杰Q2对。完了呢,绑定的关系,这个位置你要改一改啊,按照这图啊改,这图上要我们怎么改呢?这个叫第一个叫星星,以谁结尾呢?以rabbit结尾,对。完了,另外一个是叫。这个懒惰单词是吧,第二。井号,对,这么写。剩下其他都一样了吧,其他都一样了啊啊其他都一样,所以我们就不再去更改,诶好到此呢,C1C2就都写好了。
我来说两句