00:00
同学们,我们接下来去讲下一个叫这个叫直接交换机,我们刚刚讲完一个叫删出交换机,当然了,删出交换机又有一个名字叫发布订阅模式是吧,完了还有一个直接交换机,直接交换机呢就是路由模式。它们之间的区别在哪呢?无非就是就差这一点点区别。哪里区别呢?就是rolling k,如果rolling k相同了,也就是说生产者发消息给交换机,如果rolling k相同,是不是两个队列就都收到了?对这种呢,就是扇出交换机,也就是发布定理模式,那如果两个柔电可不相同呢?对,两个ODK,如果不相同,就是我们马上要讲解的什么呢?直接交换机,也就是路由交换机。那么如果你路由交换机的这个如尼可一模一样啊,跟刚才这个扇出交换机是一模一样的话,那么就其实跟扇出是一样,就是一这个就是一个变种,对不对,就是一个变种,只要你揉进去不一样啊名名字就改了,改成什么叫直接交换机。
01:04
所以直接交换机跟。删出交换机的区别就在这儿了,你看就是在这个绑定关系,这ROK这个呢,刚才咱们绑的都是空串是吧,相当于没绑定,那么咱们现在绑定的,例如orange黄色look是吧,以及great绿色等等,当你绑定的东西不一样的时候,那么这个就是路由模式了。属于路由模式,也叫直接交换机方式,那么这种就是我们之前说的想给谁传给谁传,那么之前是一个人发消息,多个人接收,但是现在我想一个人发消息,想给Q1接收,Q2不能接收。能做到不能做到,只要指明这个ROK就可以了。那么如果想给Q2发消息,不想让Q1接到,那么也指明Q2的这个肉丁K也就可以了,所以可以进行区别的对待。
02:03
而能做到区别的对待,就是我们呃本节课要讲的关于什么,关于这个叫呃直接交换机。支持多重绑定。对吧,例如你看这张图。多重绑定的意思就是绑定的内容是不一样的。对吧,你绑当然绑一样的,就跟扇出是一样的,跟之前的扇出交换机或者叫发布订阅模式的交换机是一模一样,如果绑的不一样,那么就是我们的直接交换机好。接下来呢,咱们来来一波实战啊,来一波实战什么呢?这张图当中,你看按照这张图啊,我们可以看出我们打算写一个代码。一个交换机的名字叫直接locks。完了,有三个队列,分别叫conso,另外一个也叫conso,完了另外一个叫什么叫,这个叫磁盘是吧?所以这是几个队列呢?其实是两个队列啊,只不过这是一个队列,这是第二个队列,只不过交换机跟这个队列之间ROK不一样啊,一个是in Ford,一个是警告的,一个是IR的是吧?哎,对,这不一样。
03:09
所以导致周DK不一样,以为绑了几遍,绑了两遍,实际上是几个队列一个队列,所以我们针对于这种情况,咱们写一下代码。好吧,完了呢,我们这时候。把之前的。关掉。这些都关了,关掉是吧,完之后呢,在它的旁边再来写第六个。完了第六个当中呢,我们名字呢,就不是不自己去起了,因为它已经给咱起好了,他要求咱们叫direct lock斯,对不对,哎,那我们就写它,当然了,最好先写两个,对,两个队列是吧,两个队列。行,那队列的名字就叫这名。好,塌了。完了之后呢,我们写写我们的main函数是吧。
04:02
首先我们的交换机的名字已经固定了啊,所以说咱们交换机名字已经。对,固定了。交换机的名字等于什么呢?等于叫director下划线,这个叫logs啊,这是文档上啊,让咱们写的吧,看一眼啊。这个叫我看叫direct杠下划线是direct向下lock就它了,好把它。大写。完之后剩下的任务跟就跟之前代码是一模一样的。有多一样,来,把之前的代码咱们拿过来。哪里一样呢?首先这个获取信道一样不一模一样,对,粘过来吧。的心道。完了要抛异常,抛异常。接下来呢,又跟谁一样呢?又跟这个交换机一样,这是声明一个扇形交换机,但是本次咱不是扇形。咱是要捆绑一个。
05:00
捆绑一个叫。叫做这呢。定向你看咱们之前直接写扇形,实际上直接写扇形是这么写啊,里面呢,帮咱们写好了这个名字了。那么你可以是一个枚举是吧,可以洗,可以调枚举。那么当你去调。它的时候可以用这个枚举来写,你看例如这个叫这个是直接交换机是吧。直接就往退。完了,这是交换机的名字。再往下其他都一样吗?哎,其他也差不多都一样了,例如下一个要声明一个临时的队列,当然了,你也可以声明一个有名字的队列,这都是可以的。那么他让咱们有名字吗?他让咱们有名字,咱们再把那名字呃粘过来。放到放到这是吧,放到旁边我们去看一下,看一下这名字,把它放到这里完之后剪接回来。回来之后呢,紧接着我们在这儿啊,放着放这儿之后呢,紧接着是。
06:03
声明,呃,一个队列,队列名字点上亏。对立的名称叫什么名?看好叫坑。这个对应名称。好了,队列名称的下一个单词问你需要持久化吗?那么你可以写不持久化是吧?呃,不共享啊,不自动删除等等啊,这这些随便写吧,是吧,我们也不太关心这个问题。再往下呢,是绑定对吧,心脏。第二,进行队列的捆绑。把队列名字。就他田里面。完了再把这个交换机的名字填里面。对吧,完了再把roting k的名字填里面看一眼啊,这个是我看谁是谁的名字,第二个是交换机的名字,第三个是roting k的名字,那么下面roing k的名字呢?它让咱们叫info,注意看了个一定要看这张图啊,他这这是咱们的。要求对吧,O to。
07:01
这就完成了。一个。完,剩下的工作就是接收消息。对吧,进行消消息的消费。Basic。完了,把你的队列名称。对,队列名称拿过来。完了之后呢,在。其他值应该就不用填了吧,对其他值应不用填了,因为这里面消费的时候让咱填的是队列名称以及。回调的消费者是吧?董事长这呢,对立名称加上这两个嘛,回调的。消费内容是吧,把这两个呢,我们粘一粘,写一写,当然了,其实已经不用写了,之前咱都写过了,所以直接把这段呢,直接粘过来就完成。粘过来完成之后呢,放到这里面,只是把这个名字改改啊,因为这个是对叫做康索名字,其他都一样啊,你看什么打印信息,咱们把这个名字换一换啊。
08:05
名字换一下。打印信息都一样啊,都一样。所以到此就完成。只注意只完成上面第一个了,In for这个了,你还没写下一个呢,你下一个不还得调对吧,还得写这个console警告级别的,所以说所以说要写。好几个对,要写好几个。那么你可以多重绑定啊,多重绑定的意思就是这个写完之后呢,你可以在它旁边再调一波绑定,就是把这个叫警告直接写着,就没有必要再重写了。对吧,这样呢就可以绑定几个。这个Co绑定了两个完,另外一个磁盘绑定是error吧,所以另外一个跟这个是一样的,对,可以这么理解,所以直接复制。粘贴改成几改成二。完了二当中呢,把谁改改呢,把看把谁改改啊,把这个叫把这个去掉一个。完了,声明一个交换,声明一个队列,这个队列名字叫。
09:03
对Dis对,完了再把这Dis改一改,完了这块再改啊,这叫什么irow。剩下其他就不用改了,完了把这个名字。打印的这个控台名字,谢谢。完了还有这。对吧,这。所以就。结束。对,结束了,所以呢,这个两个队列上,记住一定是两个队列啊,因为这两个队这个队列的名字是一样的,只不过捆绑的这个规则是两种规则是吧,两种这个肉丁K。但是我们用一个类就写完了,这个是另外一个。完之后呢,你在这个算自身完成啊,那么你接下来再写发送方就可以了。发送方跟之前的写法是一样吗?也是一模一样,对。一模一样的,对,几乎就是一模一样,就把队列名称改改就行了,所以呢,我们这个名字。来一个名字,名字呢要抄袭文档啊,抄袭它叫什么?叫direct log是吧,叫direct logs这么一个类。
10:06
完了,这个负责发送,发送的内容呢,就无非跟上面这个曾经写过的是一模一样,粘过来就可以。改改就改改就行了,你看,例如这个叫director_logs。是是吧,是啊,完之后呢,这个就不没有必要声明不要了。完了,从控制台输入生产者发送loadingk呢?RODK呢?不一样了啊,你想发给谁?你就发给谁对不对。那么怎么发呢?看一下啊,那我们是可以。对吧,可以这么放。可以进行。可以进行发送啊,绑定发送,那我们弄一个map是吧,弄一个map来。首先第一步呢,我们是这里准备了一个交换机,不是准备了一个信道啊,这个信道呢,进行绑定这活呢,我们就不用干了,接下来呢,可以创建多个绑定。
11:10
但是我们,呃,输入怎么输入呢,是吧,这个东西。可以调试一下来试一试啊。我们发送一个交换机,这个位置呢,我们填写谁呢,一定要看好,你想你想让谁接收啊。你如果想让。呃,这个councilo接收,那么你这个位置叫填in for或者填。填警告,如果你想让这个叫这个Dis接收,你就写error,对,所以你看我们试一下啊。首先将两个启动起来。这个启动完了,再将另外一个启动起来。好,两个都已经启动好了,就等待着接收呢,你想让谁接收就谁接收啊,你想让谁接收呢?这个一号是。Conso是吧,所以说它的绑定是info,所以你在发的时候,你可以发这个叫你力有险info对。
12:04
只要你写info了,那么你发送消息就会被其中一方接收。谁是音符,我看一眼啊,我看一眼谁谁是音符。啊,它是音,那么就被一号机接收了,一号机啊来试一下。被他接收啊,被他接,他不能接收。所以我们写一个,呃,一一回车完之后你看。被一号机接收,而二号机收到了吗?没有收到。对吧,哎,没有收到,想发给谁发给谁,那么当你把这个发送改成A的,例如这呢,你看把这个发送,例如改成。对,这周你再把它重启一下。这时候你发送的一一就会发给二号机了,对吧,第二个机第一个就没有了。来试一下,例如发个二二是吧R。这时你看一号机还是曾经接收的一,而二号机接收到R,对,所以想发给谁完全取决于什么,取决于roting。
13:05
跟交换机本身没关系的,因为交换机的名字都是一样的,只不过ROK1换。就更换了我们的,呃,接收的这个队列你看。这个交换机是一模一样的,只要你更换它和它或它对应的队列,哎,就不一样了。你想让这个队列接收,那么你就发送info或者是警告,如果你想让这个队列接收,那你就写I。哎,这就是我们关于。直接交换机的一个作用。
我来说两句