上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

RabbitMQ-网页使用消息队列

guduadmin71天前

1.使用消息队列

几种模式

RabbitMQ-网页使用消息队列,在这里插入图片描述,第1张

从最简单的开始

RabbitMQ-网页使用消息队列,在这里插入图片描述,第2张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第3张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第4张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第5张

添加完新的虚拟机可以看到,当前admin用户的主机访问权限中新增的刚添加的环境

RabbitMQ-网页使用消息队列,在这里插入图片描述,第6张

1.1查看交换机

RabbitMQ-网页使用消息队列,在这里插入图片描述,第7张

交换机列表中自动新增了刚创建好的虚拟主机相关的预设交换机。一共7个。前面两个 direct类型的交换机,一个是(AMQP default)还有一个是amq.direct,它们都是直连式的交换机。

先看第一个交换机:

RabbitMQ-网页使用消息队列,在这里插入图片描述,第8张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第9张

第一个交换机是所有虚拟主机都会自带的一个默认交换机,并且此交换机不可删除,此交换机默认绑定到所有的消息队列,如果是通过默认交换机发送消息,那么会根据消息的 routingkey(相当于网络中的ip) (之后我们发消息都会指定)决定发送给哪个同名的消息队列,同时也不能显示地将消息队列绑定或解绑到此交换机。

我们可以看到,详细信息中,当前交换机特性是持久化(druable:true)的,也就是说就算机器重启,那么此交换机也会保留,如果不是持久化,那么旦重启就会消失。实际上我们在列表中看到 D 的字样,就表示此交换机是持久化的,包含一会我们要讲解的消息队列列表也是这样,所有自动生成的交换机都是持久化的。

然后查看第二个交换机,这个交换机是一个普通的直连交换机:

RabbitMQ-网页使用消息队列,在这里插入图片描述,第10张

这个交换机和我们刚刚介绍的默认交换机类型一致,并且也是持久化的,但是我们可以看到它是具有绑定关系的,如果没有指定的消息队列绑定到此交换机上,那么这个交换机无法正常将信息存放到指定的消息队列中,也是根据 routingkey 寻找消息队列(但是可以自定义)

1.2 查看消息队列

1.2.1 创建队列

可以看到下方图中没有任何的消息队列,可以尝试在下方添加一个新的消息队列

RabbitMQ-网页使用消息队列,在这里插入图片描述,第11张

第一行,选择刚刚创建好的虚拟主机,在这个虚拟主机下创建此消息队列,接着我们将其类型定义为 CLassic 类型,也就是经典类型(其他类型我们会在后面逐步介绍)名称随便起一个,然后持久化我们选择 Transient 暂时的(当然也可以持久化,看你自己)自动删除我们选择 No需要至少有一个消费者连接到这个队列,之后,一旦所有与这个队列连接的消费者都断开时,就会自动删除此队列)最下面的参数我们暂时不进行任何设置 (之后会用到)

创建好的队列

RabbitMQ-网页使用消息队列,在这里插入图片描述,第12张

点击队列名称可查看详细信息,详细信息包括队列的当前负载状态、属性、消息队列占用的内存、消息数量等。

RabbitMQ-网页使用消息队列,在这里插入图片描述,第13张

1.2.2 创建的队列绑定交换机

然后将当前消息队列绑定到上边的第二个直连交换机,这样就可以通过此交换机向此消息队列发送信息了 (即给第二个交换机(amp.direct)发送消息,由它将消息给到yyds队列中:

RabbitMQ-网页使用消息队列,在这里插入图片描述,第14张

绑定之后

RabbitMQ-网页使用消息队列,在这里插入图片描述,第15张

1.2.3 模拟发送消息

RabbitMQ-网页使用消息队列,在这里插入图片描述,第16张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第17张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第18张

再次点击yyds名称,发现队列多了一条数据

RabbitMQ-网页使用消息队列,在这里插入图片描述,第19张

1.2.4 在消息队列这边直接获取队列的消息

找到下方的get message选项:

RabbitMQ-网页使用消息队列,在这里插入图片描述,第20张

可以看到三个选项,首先是Ack Mode,这个是应答模式选择,共有四个选项

RabbitMQ-网页使用消息队列,在这里插入图片描述,第21张

Nack message requeue true: 拒绝消息,也就是说不会将消息从消息队列取出,并且重新排队,一次可以拒绝多个消息。

Ack message requeue false: 确认应答,确认后消息会从消息队列中移除,一次可以确认多个消息。

Reject message requeue true/false: 也是拒绝此消息,但是可以指定是否重新排队。

RabbitMQ-网页使用消息队列,在这里插入图片描述,第22张

可以查看取出的消息

RabbitMQ-网页使用消息队列,在这里插入图片描述,第23张

此时消息队列还有一条消息

RabbitMQ-网页使用消息队列,在这里插入图片描述,第24张

尝试使用第二个选项,然后点击get message

RabbitMQ-网页使用消息队列,在这里插入图片描述,第25张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第26张

发现队列没有消息了

RabbitMQ-网页使用消息队列,在这里插入图片描述,第27张

1.2.5 再去第一个默认交换机尝试发送消息

RabbitMQ-网页使用消息队列,在这里插入图片描述,第28张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第29张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第30张

routing key 改为yyds进行发布

RabbitMQ-网页使用消息队列,在这里插入图片描述,第31张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第32张

发布成功

RabbitMQ-网页使用消息队列,在这里插入图片描述,第33张

进入消息队列查看消息

RabbitMQ-网页使用消息队列,在这里插入图片描述,第34张

RabbitMQ-网页使用消息队列,在这里插入图片描述,第35张

因此第一个交换机和第二个交互机发布消息时的区别:第一个交换机是根据队列的名称判断的,第二个交换机是根据队列指定的routing key判断的

RabbitMQ-网页使用消息队列,在这里插入图片描述,第36张

点击名称进入详情查看routing key

RabbitMQ-网页使用消息队列,在这里插入图片描述,第37张

1.2.6 删除或情况队列

点击队列名称进行详情

RabbitMQ-网页使用消息队列,在这里插入图片描述,第38张

网友评论

搜索
最新文章
热门文章
热门标签