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

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

一、RabbitMQ架构

RabbitMQ架构图:

image.gif

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

  • Publisher(生产者)
  • 生产者是消息的发送方,它负责将消息发送到RabbitMQ服务器。
  • 生产者可以向多个队列发送消息,也可以向特定的交换机发送消息。
  • 生产者通常使用AMQP协议与RabbitMQ服务器进行通信。
  • Consumer(消费者)
  • 消费者是消息的接收方,它从队列中获取并处理消息。
  • 消费者可以同时从多个队列接收消息,也可以使用长轮询或短轮询方式来控制消息的接收速度。
  • 消费者通常使用AMQP协议与RabbitMQ服务器进行通信。
  • Queue(队列)
  • 队列是RabbitMQ的核心组件,它负责存储消息。
  • 生产者发送的消息会先暂存到队列中,等待消费者处理。
  • 队列可以持久化存储消息,即使服务器重启,消息也不会丢失。
  • Exchange(交换机)
  • 交换机负责消息路由,它根据一定的规则将生产者的消息投递到特定的队列中。
  • RabbitMQ支持多种类型的交换机,如直接交换机、主题交换机和路由交换机等。
  • 交换机可以根据需要配置为单播或广播模式,以控制消息的投递方式。
  • Virtual Host(虚拟主机)
  • 虚拟主机是RabbitMQ中的一个重要概念,它起到数据隔离的作用。
  • 在一个RabbitMQ集群中,可以拥有多个虚拟主机,每个虚拟主机相互独立,有自己的交换机、队列等资源。
  • 通过虚拟主机隔离,可以实现不同应用或不同环境之间的数据隔离,提高系统的可扩展性和安全性。

二、RabbitMQ管理控制台的使用

1.Exchange交换机

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

image.gif

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

image.gif

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

image.gif

2.Queue队列

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

image.gif

新建队列:

image.gif

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

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

查看队列列表:

image.gif

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

Exchanges选项卡中选择交换机:

image.gif

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

image.gif

查看绑定结果:

image.gif

4.发送消息

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

image.gif

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

image.gif

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

image.gif

5.数据隔离

Admin选项卡中创建用户:

image.gif

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

image.gif

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

image.gif

查看创建结果:

image.gif

image.gif

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

image.gif

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

image.gif


总结

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

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7月前
|
数据采集 机器学习/深度学习 运维
量化合约系统开发架构入门
量化合约系统核心在于数据、策略、风控与执行四大模块的协同,构建从数据到决策再到执行的闭环工作流。强调可追溯、可复现与可观测性,避免常见误区如重回测轻验证、忽视数据质量或滞后风控。初学者应以MVP为起点,结合回测框架与实时风控实践,逐步迭代。详见相关入门与实战资料。
|
消息中间件 新零售 弹性计算
云消息队列 RabbitMQ 版入门训练营,解锁对比开源优势与零基础实战
欢迎加入「云消息队列 RabbitMQ 版入门训练营」。
367 107
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
1122 3
图卷积网络入门:数学基础与架构设计
|
消息中间件 Java Kafka
实时数仓Kappa架构:从入门到实战
【11月更文挑战第24天】随着大数据技术的不断发展,企业对实时数据处理和分析的需求日益增长。实时数仓(Real-Time Data Warehouse, RTDW)应运而生,其中Kappa架构作为一种简化的数据处理架构,通过统一的流处理框架,解决了传统Lambda架构中批处理和实时处理的复杂性。本文将深入探讨Kappa架构的历史背景、业务场景、功能点、优缺点、解决的问题以及底层原理,并详细介绍如何使用Java语言快速搭建一套实时数仓。
1771 4
|
Kubernetes 关系型数据库 MySQL
Kubernetes入门:搭建高可用微服务架构
【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
623 3
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
538 1
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
运维 Cloud Native Android开发
云原生之旅:容器化与微服务架构的融合之道安卓应用开发入门指南
本文将深入探讨云原生技术的核心要素——容器化和微服务架构,并揭示它们如何共同推动现代软件的开发与部署。通过实际案例分析,我们将看到这两种技术如何相辅相成,助力企业实现敏捷、可扩展的IT基础设施。文章旨在为读者提供一条清晰的道路,指引如何在云原生时代利用这些技术构建和优化应用。 本文将引导初学者了解安卓应用开发的基本概念和步骤,从安装开发环境到编写一个简单的“Hello World”程序。通过循序渐进的讲解,让读者快速掌握安卓开发的核心技能,为进一步深入学习打下坚实基础。
276 28
|
监控 API 持续交付
后端开发中的微服务架构:从入门到精通
【10月更文挑战第26天】 在当今的软件开发领域,微服务架构已经成为了众多企业和开发者的首选。本文将深入探讨微服务架构的核心概念、优势以及实施过程中可能遇到的挑战。我们将从基础开始,逐步深入了解如何构建、部署和管理微服务。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的建议。
348 0

热门文章

最新文章