RabbitMQ入门(一)

本文是RabbitMQ入门系列的第一篇,主要内容包括RabbitMQ的基本原理、Exchange的Type类型区别以及通过RabbitMQ自带控制插件进行简单操作的示例,如创建VirtualHost、Exchange、Queue及绑定过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前的博客中,我简单的写了RabbitMQ结合SpringBoot的简单应用,但对于RabbitMQ的一些概念以及简单使用并没有进行说明,最近有时间我将之前学习RabbitMQ的时候写的学习Word文档提交到优快云中了。同样,这篇博客主要的目的也是整理记录自己的学习笔记,可能是一篇只适合一些人理解的博客,如果对读者有一定的启发那就更好了。

RabbitMQ入门(一)

RabbitMQ入门(二)

RabbitMQ入门(三)


目录

RabbitMQ简单说明

RabbitMQ原理图

Exchange的Type类型的区别

结合RabbitMQ自带控制插件简单示例

建立VirutalHost

建立Exchange

建立Queue

Queue和Exchange进行绑定

发送消息


RabbitMQ简单说明

RabbitMQ原理图

下图是我在网上找到的一张RabbitMQ的原理说明图:

这里我们可以看到我们发布消息不像ActiveMQ一样直接发送到Queue而是需要 经过Exchange,然后Exchange根据自身Type 以及和Queue的Binding Key来决定这条消息是发送到哪个队列。

Exchange的Type类型的区别

从上面图中,我们知道Exchange的Type关系也关系着一条消息是发送到哪里,下面我们就根据不同的Type介绍它们的具体含义。

fanout 就是将所有所有发给此Exchange的消息 每个与此Exchange绑定的Queue中。而不管Queue和Exchange绑定的时候key 以及消息发送时候设置的Routing Key。

direct 就是当Routing Key和 Queue与Exchange绑定设置的 Key 完全一致的时候就将此消息发送到 这个Queue。

topic 可以认为是带通配符的direct,在Queue和topic的exchange绑定的时候,可以使用类似如下的key:(这里 * 可以匹配单一不含“ . ”的字符串   #匹配所有字符串)如下简单示例:

hello.*      可以匹配发送(到此Exchange的)消息时 设置Routing Key为hello.任意字符串(不包括hello.a.b这种)

hello.#  可以匹配发送(到此Exchange的)消息时 设置Routing Key为 hello.任意字符串(包括hello.a.b hello.a.b.c所有)

单纯的一个 # 可以匹配 所有发送到此Exchange的消息。

headers 根据发送消息的headers 设置与headersExchange和Queue绑定时候的参数相匹配,如果消息的headers 包含 headersExchange和Queue绑定时候设置的参数(如果绑定设置的参数多个 那么要同时满足这多个才会发送到这个Queue)则发送到这个queue。之后会具体说明。

结合RabbitMQ自带控制插件简单示例

在RabbitMQ中,我们可以创建多个VirtualHost,然后建立不同的用户授予不同的权限,从而实现对RabbitMQ的更细化管理,这里我们使用localhost:15672访问RabbitMQ控制页面,然后进行操作。

建立VirutalHost

首先使用guest/guest登录我们的RabbitMQ控制页面(如果之前设置过其他用户,也可以使用其他用户)

建立Exchange

根据自身需要,建立Exchange,可以看到我们可以设置这个Exchange是属于哪个VirtualHost以及它的Type是什么:

并且可以看到我们可以设置这个Exchange是持久化的,还是瞬时的,是否自动删除等。

建立Queue

点击控制页面的Queues的tab页,然后在Add a new queue添加新的消息队列:

我们同样可以设置队列是否自动删除,是否持久化等,并且可以设置一些参数,如消息最大数量等。

Queue和Exchange进行绑定

点击Queues的名字,我们会在页面中看到Bindings:

这里我们可以设置此Queue与哪个Exchange绑定,绑定的Key是什么,另外Arguments 就可以在Exchange的Type为Headers的时候使用。

另外也能,点击Exchange的名字进入Exchange详细信息的页面进行绑定:

我们可以看到这里绑定的设置跟Queue界面绑定Exchange类似,不同点在于这里不但能与Queue绑定,还能与Exchange绑定,也就是我们发送到Exchange的消息可以发送到其他Exchange。

发送消息

我们可以在Exchange的详细页面,找到Publish message,然后填写Routing key,消息内容等,点击发送消息,消息就会传递到此Exchange,然后进入到与此Exchange绑定,并且符合条件的消息队列中。

或者在Queue的详细信息页面,我们同样也能发送消息,不同的是这样会发送到默认的Exchange,并且RoutingKey是当前队列的名字,这样消息也会发送到此消息队列中。

 本篇博客中,简单的介绍了RabbitMQ的一些内容,之后会根据RabbitMQ官网的入门指导进行其他博客的编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值