00:00
好,接下来呢,我们就来配置和整合re MQ,那么在配置整合之前呢,我们首先对re MQ来做一个简单介绍和快速入门,这个专门的MQ呢,它是我们这个AMQP,也就是我们说的高级消息队列协议的一个开源实现产品,它的稳定性和可靠性呢非常高,也是我们现在非常流行的一个消息中间件,那么我们了解一下它的几个核心概念,作为一个消息队列产品,它非常重要的一个概念就叫message,也就是我们说的消息,这个消息呢是我们啊发送者给我们消息代理,也就是我们消息队列服务器发送的这些数据内容,这个消息呢,它由消息头和消息体组成,就类似于我们HTTP协议里边的请求头,跟请求体一样,那么消息体呢,是我们发出去的数据,它呢是不透明的,哎,我们程序员。
01:01
通知的,而消息头呢,是一系列可选的这属性组,比如有非常重要的一个叫路由键,每一个消息到底要发给谁,是直接由他来指定的啊,就类似于我们要把消息发在网络里边,你要指定一个IP地址一样,当然后边呢我们来详细再说,还有呢,它的这个priority,哎,比如消息的优先权,包括deliver remote啊,我们这个消息是否需要持久化存储等等等详细的内容呢,大家可以去来关注我们上勾谷后续的有关系列课程,那么还有我们这个publish啊,它呢叫消息的生产者,我们这个publish,哎,我们简称这个器,它呢将我们这个message消息,他呢直接先会发给我们这个服务器,这个服务器我们之前称为消息代理,哎,Message brokeer,所以呢,它是我们这个消息的发送者,我们也叫消息生产者,而这个消息呢,它是直接。
02:01
发给我们这个message服务器里的一个叫交换器,这个交换器呢,是我们高级消息队列协议里边的一种组件,它呢是用来接收我们这个生产者为我们发送过来的消息,并且呢将消息路由的相应的队列,这个交换器跟我们现实生活中的这路由器交换机其实效果呢,基本上是类似的,我们把消息呢交给交换器,哎,这个交换器上呢,它可能会绑定了很多队列,就跟插了很多网线一样,那我们这个数据到底要到达哪根网线,交换器呢,是通过什么呢?通过这个路由件来决定的,你这个路由件指定是谁,那就到达什么。在MQ中呢,我们这个exchange有交换器啊,它有四种类型,Direct final topic和这个呢能实现我们GMS中那个点对点消息模型,后面三个呢,可以实现发布订阅模型,这些呢我们在后来会做详细的解释来,在这一块呢,只需要清楚我们这个消息是通过这些交换器,交换器来决定这个消息发往哪个队列,发到哪儿好。
03:19
我们再来看这个困,哎,我们称为消息队列,这个消息队列呢,它其实就是用来保存我们这些消息的,它是我们消息的容器,也是我们消息从发送来到我们这个消息队列服务器,最终我们来到这个队列里边,这个队列里边的消息呢,它会一直等到某一个人连接这个队列以后,将这个队列里边的消息取走,那么这个消息就不复存在,这是我们这个消息队列,而我们来说一下一个消息是如何抵达队列呢?结合我们以前的概念,首先呢,应该是一个我们这个叫消息的生产者,这个生产者呢,它创建出一个消息,这个消息呢先发给我们这个消息队列服务器,但是呢,它会先抵达消息队列服务器的,我们这个叫exchange叫交换器,这个交换器呢,根据你发的这个消息指定的路由键,我呢把。
04:19
你派给某一个队列,在我们这个消息队列服务器里边呢,可能有非常多的这个队列,我根据你这个路由件把你派发到某一个队列里边,你这个消息就会被放到这个队列,而这种派发规则就相当于是我们这个队列要跟我们这个交换器来做关联,这个关联关系呢,我们就称为绑定,其实呢,就是我们这个交换器和我们这些消息队列共同组成的一张路由规则表,而我们说这个交换器和队列之间的绑定关系是可以多对多的,就是说啊,一个交换器可以绑定多个队列,那么一个被列队列呢,也可以被多个交换器都来绑定上,有人呢,你不管消息是发给哪个交换器,哎,比如这三个交换器都绑定这一个队列,那么消息呢,都能到达这个队列。
05:15
这样呢,我们再来说一个connection网络连接,当然我们要操作消息队列,我们要跟它建起连接,哎,我们建一条连接,而重要的呢,是我们将信道,所谓的信道呢,是用来解决多路复用的,如果我们每去消息队列里边来取一个消息,我们都建一条TCP连接,那么这是非常耗费资源的,所以呢,我们这个消息队列服务器呢,跟它建连接的时候,它是来建立一条TCP连接,然后呢,如果我们要获取数据,它就在这整条的TCP连接里边来开多个信道啊,这个信道呢,就是我们真正来发送数据,来订阅队列,接收消息啊,用到这个通道,所以说呢,它是为了节省资源的一个操作。接下来呢,就是我们所说的消费者,那么发送消息的人我们叫生产者,发布者,那收消息的人。
06:15
嗯,那就叫消费者consumer,还有我们这个virtual host,哎,我们称为虚拟主机,简称呢,我们这叫we host,它呢其实就是说把我们整个RAMQ服务器,我们可以在内部呢,划分出很多的这个虚拟主机,每一个虚拟主机其实就是一个迷你版的软MQ,它们都是可以独立运行的,而虚拟主机跟虚拟主机之间是隔离的啊,每一个虚拟主机有它自己的消息队列,包括有自己的交换器,还有自己的路由规则,嗯,还有自己的这个权限控制机制,包括有自己的身份认证的这加密信息等等等等,每一个虚拟主机都是不一样的,那我们连接我们这个MQ的时候呢,我们必须指定我们的虚拟主机,那么虚拟主机呢,默认是杠,它呢是通过路径来划分的,你可以这个虚拟主机。
07:15
叫杠ABC这个呢叫杠and硅谷,你这个呢叫杠古励学院等等等都行,还有我们这个我们也称为message brokeer,翻译过来呢,就叫消息代理,所谓的消息代理指的呢,就是我们这个服务器,那么这些概念之间的相互交互应该是这样子的,我们消息呢,这发布者啊,哎我们也叫生产者都行,然后呢将消息,哎我们这啊发了一个消息,这个消息呢,我们发给我们这个消息代理,也就是我们这个服务器,而发给服务器里边的一个微host,我们叫虚拟主机,虚拟主机里边呢有非常多的自己的交换器来队列,我们将这个消息呢,先发给我们这个虚拟主机,虚拟主机呢交给我们指定的这个交换器,这个交换器呢,再根据我们这个消息的路由件,我们来判断到底要把这个消息路由到哪个消息队列里边。那么这。
08:15
个路由规则就是通过这个绑定关系来表示的,那么当我们消息到达这个消息队列以后,那我们这些消费者呢,就可以从消息队列里边来取出消息了,那怎么取呢?我们消费者就跟消息队列建立起连接,这个建立起连接以后呢,为了咱们这个省资源多路复用啊,我们在这每一条TCP连接里边开辟很多的管道,我们这些管道里边呢,我们数据进行交互,我们从消息队列里边拿到的数据来通过这个管道我们返回给我们这个消费者。
我来说两句