RabbitMQ入门指南(二):架构和管理控制台的使用

前言

RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。


一、RabbitMQ架构

RabbitMQ架构图:

在RabbitMQ的架构中,有几个关键的概念需要理解:

  • Publisher(生产者)

    • 生产者是消息的发送方,它负责将消息发送到RabbitMQ服务器。
    • 生产者可以向多个队列发送消息,也可以向特定的交换机发送消息。
    • 生产者通常使用AMQP协议与RabbitMQ服务器进行通信。
  • Consumer(消费者)

    • 消费者是消息的接收方,它从队列中获取并处理消息。
    • 消费者可以同时从多个队列接收消息,也可以使用长轮询或短轮询方式来控制消息的接收速度。
    • 消费者通常使用AMQP协议与RabbitMQ服务器进行通信。
  • Queue(队列)

    • 队列是RabbitMQ的核心组件,它负责存储消息。
    • 生产者发送的消息会先暂存到队列中,等待消费者处理。
    • 队列可以持久化存储消息,即使服务器重启,消息也不会丢失。
  • Exchange(交换机)

    • 交换机负责消息路由,它根据一定的规则将生产者的消息投递到特定的队列中。
    • RabbitMQ支持多种类型的交换机,如直接交换机、主题交换机和路由交换机等。
    • 交换机可以根据需要配置为单播或广播模式,以控制消息的投递方式。
  • Virtual Host(虚拟主机)

    • 虚拟主机是RabbitMQ中的一个重要概念,它起到数据隔离的作用。
    • 在一个RabbitMQ集群中,可以拥有多个虚拟主机,每个虚拟主机相互独立,有自己的交换机、队列等资源。
    • 通过虚拟主机隔离,可以实现不同应用或不同环境之间的数据隔离,提高系统的可扩展性和安全性。

二、RabbitMQ管理控制台的使用

1.Exchange交换机

Exchanges选项卡中,可以观察到众多预先定义的交换机存在。

点击任意交换机,将进入交换机详情页面,可以在该页面使用控制台中的publish message 发送一条消息。

在此处,通过控制台模拟了生产者发送的消息。由于不存在消费者,消息最终丢失,这表明交换机不具备存储消息的能力。

2.Queue队列

Queues and Streams选项卡中,可以新建一个队列 。

新建队列:

在创建队列时,有一些重要的参数需要配置,这些参数的选择直接影响消息处理,需根据业务需求合理配置,以下是对这些参数的详细解释:

参数 解释
Virtual Host Virtual Host是RabbitMQ中的一个隔离环境,它类似于数据库中的schema或者命名空间。每个vhost都拥有自己的队列、交换机、绑定关系等。通过使用不同的vhost,可以实现不同应用或不同环境之间的数据隔离,提高系统的可扩展性和安全性。在创建队列时,需要指定其所在的vhost。
Type Type定义了队列的种类。RabbitMQ支持多种类型的队列,如普通队列、持久化队列、排他队列等。根据实际需求选择合适的队列类型,可以影响消息的存储、传递和持久化等方面的特性。
Name Name是队列的唯一标识符,用于在RabbitMQ中识别和区分不同的队列。在创建队列时,需要为其指定一个唯一的名称。在后续的操作中,可以通过名称来引用和操作该队列。
Durability Durability选项决定了队列的持久性,可以根据业务需求选择适当的持久性设置,该设置将影响消息的可靠性及数据安全。当选择Durable时,队列将在服务器重启后继续存在。选择Transient时,队列在服务器重启后将被删除。
Arguments Arguments是用于配置队列的额外参数集合。通过传入不同的参数值,可以进一步定义队列的行为和特性。例如,可以设置队列的最大长度、消息的最大寿命、消息的优先级等参数。这些参数可以根据实际业务需求进行定制化配置,以满足特定的性能和可靠性要求。

查看队列列表:

3.绑定Exchange交换机和Queue队列

Exchanges选项卡中选择交换机:

在交换机详情页,点击**Bindings**,在表单中填写要绑定的队列名称:

查看绑定结果:

4. 发送消息

Exchanges 选项卡中进入交换机详情页点击Publish message发送消息:

Queues and Streams选项卡中,可以发现队列中已经有一条消息:

进入队列详情页,点击Get messages,查看消息(如果有消费者监听了MQ的该队列,就能接收到消息):

5.数据隔离

在**Admin**选项卡中创建用户:

查看创建结果(该用户没有任何Virtual Host的访问权限 ):

退出登录,切换账号,并且点击Virtual Host管理页,创建Virtual Host:

查看创建结果:

点击右上角的Virtual Host下拉菜单,切换Virtual Host:

Queues and Streams选项卡中,查看队列,发现之前的队列无法查看(基于virtual host的隔离效果):


总结

RabbitMQ是一个开源的消息队列软件,旨在提供可靠的消息传递和消息队列功能。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容,希望对大家有所帮助。

相关推荐
张某布响丸辣1 小时前
探索消息中间件:RabbitMQ深度解析
分布式·rabbitmq
Amagi.1 小时前
Spring中Bean的作用域
java·后端·spring
wclass-zhengge1 小时前
RabbitMQ篇(死信交换机)
分布式·rabbitmq
2402_857589361 小时前
Spring Boot新闻推荐系统设计与实现
java·spring boot·后端
J老熊1 小时前
Spring Cloud Netflix Eureka 注册中心讲解和案例示范
java·后端·spring·spring cloud·面试·eureka·系统架构
Benaso2 小时前
Rust 快速入门(一)
开发语言·后端·rust
sco52822 小时前
SpringBoot 集成 Ehcache 实现本地缓存
java·spring boot·后端
原机小子2 小时前
在线教育的未来:SpringBoot技术实现
java·spring boot·后端
吾日三省吾码2 小时前
详解JVM类加载机制
后端
努力的布布2 小时前
SpringMVC源码-AbstractHandlerMethodMapping处理器映射器将@Controller修饰类方法存储到处理器映射器
java·后端·spring