00:00
好,接下来呢,我们就先来安装MQ,我呢连接上我的Linux服务器。好。这一块呢,我们先检查一下我们有没有相关的镜像,这个镜像呢,只是我们上一次下载的red,那MQ呢,我们来搜索上一个镜像rabbit MQ,那么在这个docker里边,这rabbit MQ呢,我们就使用这个官方版本。这个官方版本呢,我们安装的时候呢,我来给大家找一个这有个标签,这个标签呢,我来安装这些带management标志的,这个呢是有带web的管理界面啊,我们就来直接安装它,好我们来下载doer库,哎,由于这个下载呢比较慢,我呢还是用这个加速。我们把前边的这一块加速地址拿来,然后呢,我们来输上我们完成的叫rabbit MQ冒号三杠management。
01:15
好,我们就来下载这个来回车。好,他呢,就在这儿来下载这个镜像。好,这个镜像呢,就下载完了,我们来检查一下docker images,好,我们现在呢有这个rabbit MQ镜像,我们来就来启动运行这个镜像,那写一个docker绕杠D代表后台运行杠P,我们暴露端口,这个带管理界面的MQ,它呢有两个端口,首先呢这个5672,我把主机的5672映射到我们这个刀客容器的5672,这是我们客户端和MQ进行通信的端口,还有一个杠P15672,这是呢,我们这个管理界面访问web页面的端口,我们写一个15672,好,那么这两个端口暴露以后呢,来给我们当前起一个名字,比如我们就叫my rabbit MQ,好,然后呢,我们是启动哪个镜像的,我们可以把这个镜像的ID来复制过来。
02:29
放在这好回车,然后呢,我们来看docker PS,我们来看运行的我们这个rabbit MQ,哎567215672就暴露在这了,那我们就可以通过客户端来进行访问,好,那我们呢,在这儿我就来访问我当前这个虚拟机118.24.44.169来118.24.44.169,我们来访问呢,这个15672端口回撤。
03:03
诶,我们现在呢,就看到了rabbit MQ的这个管理界面,那么呢,来使用默认的guest账号和密码,密码呢也是guest来登录,点一个登录好,这就是呢,我们的管理界面上面这呢有六个操作菜单,哎,这有盖览信息,包括呢能监控我们当前的所有连接,以及我们里边的这些信道,包括呢我们当前MQ里边有哪些exchange啊,默认呢,它已经放了这么多的交换器,还有呢,我们当前定义的所有消息队列,我们现在呢还没有一个消息队列,包括呢这个管理控制台,在这一块呢,我们可以来添加一些账号密码,用户,包括呢,还有这个叫we host,哎,我们也能在这儿添加一些虚拟主机,而默认呢,我们现在用的是这个杠,在这一块呢,监控的是所有虚拟主机,当然我们可以切控的切换到杠啊,我们默认现在用的就是这个杠好等等等等。
04:03
那么呢,就来结合上一章的内容来测试一下rabbit MQ的这些消息路由机制,这个测试呢,我们按照PPT里边我给的这张原理图来,我们这个消息呢,我们可以发送给不同的这个交换器来,我们就来测我们上节课说的这三种direct final和topic,那么这交换器呢,绑定这么四个队列,哎,这四个队列呢,分别是谷和谷news and,谷emps,还有国立学院news来我的这些队列名,最终呢,都是这些绑定的路由件的名称,我们看一下,当我们消息抵达到不同的交换机以后,哪个队列能收到这个消息,我们就在这个web界面呢,将这创建出来,首先呢,我们来创建一个交换器,这个交换器呢,人家有默认有默认的,我来创建上一个我们自己的交换器的名字,名字呢,我们先来创建,第一个叫exchange direct。
05:03
好,我们把它复制来,来创建一个这个交换器,这个交换器呢,它的这个类型我们就选中为direct,哎,然后呢,这有一个duable,哎,表示我们这个交换器是否是持久化的,所谓的持久化就是如果我们现在这一块选择是持久化的,那么我们下一次rabbit MQ重启这个交换器还在,否则呢,我们这个下一次重启我们交换器就不在了,而默认的这些呢,我点进来大家可以看一下他们的这些规则,诶他们呢,都是我们这个duable是true的持久化的,好,我们呢也创建一个持久化的来测试一下就行,好,我现在创建一个exchange direct,它的类型呢是direct,它呢是持久化的,然后呢,我们就不用指定了,我点一个添加能看到呢,这就添加了一个我们这个交换器,我把其他三个交换器呢,我都创建出来,还有一个叫exchange final。
06:01
好,我来添加一个exchange哦,我们把这个名字写上exchange final,它的类型呢,是也是持久化的添加,那这又有一个交换器,我们呢,再来添加一个exchange topic。哎,我们这儿呢,有三个不同的交换器,它的类型呢是topic,好我们点添加,好我们呢,现在相当于是添加了我们这三个交换器,那接下来呢,我们再来添加上一些消息队列,好,我们在这个消息队列里边点一个添加队列,这个队列呢,哎,我们就来添加我们这四个,第一个叫at硅谷,这个队列是否持久化的,好我们就写在这儿,然后呢,你可以指定这个队列是否自动删除等等,好,我们就来直接添加这是第一个队列at硅谷,我再来添加一个队列at硅谷news。好,我们来直接添加,我们再来添加一个队列,叫安特硅谷EPS。
07:00
走,然后呢,我们再来添加一个安硅谷,哎,鼓励学院的news。六四好,我们现在呢,相当于是我们在这了添加了四个队列,但这些队列呢,要能工作,我们就得和这些交换器我们进行关联绑定,好我们点进来,我们要给第一个交换器direct,我们来绑定这四个队列,哎,我们点进来这个direct以后呢,在下边,哎这呢有我们这个绑定,我们来看一下,好,这有一个绑定关系,这个绑定呢,我们就在这来绑定,这我们来绑定到什么呢?我们绑定到K,绑定到K,哪些困呢,我们就来把这四个困我们都绑定上。添加绑定规则,第一个直量的交换器好,我们绑定的at特硅谷,那么绑定的路由键呢?路由键我也叫at特硅谷,我点一个绑定,这就绑定了一个,然后呢,我再来绑定at硅谷点news好,那么还是把这个交换器绑定到at硅谷点news,路由键呢,也叫硅谷点news绑定好绑定,然后呢,接下来还有我们这个硅谷点EMS好名叫它,我们路由键呢,也叫它来绑定好,那么还有我们这个at特硅谷鼓励学院news。
08:21
好,我们来绑定到这个队列路由件也叫它来绑定,绑定好了以后呢,如果不想要哪个绑定关系,也可以在这儿点击解绑,好这个呢,我们就绑定完了,接下来呢,我们把这几种我们都来绑定给find out也来绑定这四个好topic都来绑定好那么我们来找到其他的exchange烦好我们来进行绑定第一个呢们来绑定这个enter硅谷好路由键呢,其实写不写都已经无所谓了,好,我们来加上。第二个呢,我们来绑定at硅谷点news路件呢,我们叫它第三个呢,At硅谷点emps路由件呢,也叫我们这个an硅谷emps好,还有我们这个鼓励学院news路由件呢,叫鼓励学院news好绑定上来,这时呢,我们绑定了叫叫final,然后呢,我们再来绑定我们创建的这个topic交换器,这个topic交换器我们点进来,那们呢,还是给这四个小小队列来绑at硅谷,那么这个路由键呢,按照我们指定带at特硅谷的,我路由件我都写at硅谷点井好我们这个绑定的这个我们讲下安特硅谷点井我们知道呢,井号代表匹配零个或多个单词,好,我点一个绑定,把所有an硅谷都一样,我们就叫at硅谷点井绑定an硅谷news,还有emps也是at硅谷点。
09:54
井号来绑定。然后呢,还有我们这个来,还有我们这个news,两个news我们就来绑定成新news,好,我们再来绑定上一些,按照硅谷news,我再来绑定一个新点news。
10:13
绑定,还有我们这个鼓励学员news,我也绑定新点news,哎星代表呢是匹配一个单词来绑定好这些绑定规则呢,我们就来绑好了,接下来我们给每一个交换器里边来发送一些消息,来测试一下哪个队列能收到这些内容,我们呢先来测试这个direct,好我点进这个交换器,这个交换器呢绑定了这四个队列,我们在下边呢,有一个叫发送消息,好我呢就来发一个消息录件呢,我来写一个特硅谷。好,我就写and,硅谷内容呢,我们就来随便写吧,我就叫direct.exchange的,哎,这是随便一个内容,比如我们写了一个hello。
11:02
好,我写了这么一串字符串,然后呢,我们来把它发出去,由于现在路由键是按硅谷,我来点一个发送,哎,这条消息呢,发送成功,对于这个direct交换器,它是完全匹配路由件的,所以说只有at特硅谷这个队列能收到,我们在这些队列里边,我们可以看一下,这个队列里边我们已经看到and硅谷,哎,已经有一个message了,好,我们也可以点进and硅谷的这个message来看一看,点进来这个message呢,诶,我们在下边可以用get message获取到我们刚才发的这个消息,那点一个get,诶,这个message的内容,哎,28个字节数据,哎,就是这个我们刚才发的这个消息,好,没问题,这是我们direct,包括你要发消息,我们写的路由件是什么,那就发给谁,绝对不会发给别人,这是我们啊,我们说的这个点对点,我们单驳模式,好,那么我再来测一个。
12:02
你这个final,这个final呢,我们之前说这个final绑定的所有队列,你发消息,不管路由件是什么,它会全发过去啊,比如呢,我们在这发一个消息,那这个消息呢,我路由件呢,哎,我来随便写,我写一个at硅谷news,我们来看是不是只到达at硅谷news呢,我来写一个消息,比如我们叫final.message我们就叫哈哈,好,我来发布这个消息呢,发送成功,我们在这个队列里边,好们在队列里边,我来刷新来看一下我发现呢所有队列。后边这三个呢,收到消息了,这个按归故也收到了,它的总记录成二了,所以说呢,每一个都收到内容了,比如我点进这里边,我们来看一下get message获取,诶他呢能拿到这个消息内容,这就是我们的final,就说不管你路由件是什么,我把这些内容全部发出去,好,那我接下来,接下来呢,我再来试这个topic,这个topic呢,它就是根据路由件的匹配规则,我们来发送,比如呢,我来发一个message,我的这个路由件我叫at硅谷news,我来发一个at硅谷点news,我来写一个,哈哈哈,好,来发一些消息,那么这个消息由于路由键是at硅谷news,它符合哪几个规则,规则呢?首先否则是at硅谷开始,后边呢是任意单词的,相当于呢,它会发到at硅谷,At硅谷emps和at硅谷news发到这个。
13:39
队列里边,那么还符合什么规则呢?还符合,哎,因为它这个件也叫news,所以说呢,这些news news也符合所说呢,他都能发过来,好,那我先写一个,哈哈,相当于我们绑定的这四个队列都能收到内容,好来发送消息呢,到达了,我们来看我们这个队列。
14:01
我来刷新一下,我们发现呢,这里边的这些消息数量,哎,比他们原来都加了一个一好说明他们都收到了,那么我们接下来呢,再来测试,我还给这个topic里边我来发,原来呢用的是硅谷点news,这五个呢全匹配上了,那接下来我用哈点news。我这个路由键呢,我叫哈点news好。诶,这个我们写到这个绑定这了,好,我们要发送消息,这发送消息录,这呢我叫哈点news,哎,我们就叫哎哈哈哈,我们再来写一点内容,这个hello.news呢,由于它只符合news作为后后缀的,所以它会发送到at硅谷news和鼓励学院news这两个队列里边来点发送,好,这个发送成功了,我们在我们这个队列里边来看一下刷新。来,我们发现呢,后两个at硅谷news和鼓励学院news他们的消息数量又加了一个,我们可以来获取一下at硅谷news里边的这些消息啊,比如我们在这儿get message来获取,来获取呢,这是我们这个final给我们发来的,我们再来获取,我们发现呢,每次只能获取这个final发来的,这是由于我们这个消息我们获取来以后呢,我们给消息队列呢,我们可以应答,我们告诉他我们获取来了,让消息队列呢把这个消息给删除掉啊,我们选中第二个模式,好,我们来先来获取,翻到呢,我们来获取一次,我再来获取来翻out呢就被删除了,我们接下来获取的是鲁见由and硅谷news过来的,那们再来获取,那么获取的是hello news过来的我们这个消息,那再来获取,那三个消息都获取完了,那就没有了,那么其他的这个大家都可以来试一下。
15:50
来获取这些消息里边的内容。
我来说两句