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

专栏导航

RabbitMQ入门指南

从零开始了解大数据


目录

专栏导航

前言

一、RabbitMQ架构

二、RabbitMQ管理控制台的使用

1.Exchange交换机

2.Queue队列

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

4.发送消息

5.数据隔离

总结


前言

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架构和管理控制台的使用等内容,希望对大家有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/286005.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫全解析

一.爬虫--requests 1.常见的爬虫 -通用爬虫: 抓取系统重要组成部分。抓取的是一整张页面数据。 -聚焦爬虫: 是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。 -增量式爬虫: 检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。 2.requests模块 re…

信道编码的安全性理论

搞安全和密码的人,总有一个很头疼的问题:当一个方案安全性比较好时,效率就比较低;当提高效率后,安全性又会降低。我们总希望能找到一个平衡点。 信息安全理论中的保密容量(secrecy capacity)告…

AD20基础操作

1、编译检查项 需要重点检查的,设置为致命错误 点击Messages查看编译结果: 2、添加封装 快捷键M,选择X,Y移动选择对象 编辑偏移量后确定。 另一种快捷方式: CtrlD查看3D模型

【数据结构】树状数组算法总结

知识概览 树状数组有两个作用: 快速求前缀和 时间复杂度O(log(n))修改某一个数 时间复杂度O(log(n)) 例题展示 1. 单点修改,区间查询 题目链接 活动 - AcWing本活动组织刷《算法竞赛进阶指南》,系统学习各种编程算法。主要面向…

自助式可视化开发,ETLCloud的集成之路

自助式可视化开发 自助式可视化开发是指利用可视化工具和平台,使非技术人员能够自主创建、定制和部署数据分析和应用程序的过程。 传统上,数据分析和应用程序开发需要专业的编程和开发技能。但是,自助式可视化开发工具的出现,使…

《ThreadLocal使用与学习总结:2023-12-15》史上最详细由浅入深解析ThreadLocal

由浅入深全面解析ThreadLocal 目录 由浅入深全面解析ThreadLocal简介基本使用ThreadLocal与synchronized的区别ThreadLocal现在的设计(JDK1.8)ThreadLocal核心方法源码分析ThreadLocalMap源码分析弱引用与内存泄露(内存泄漏和弱引用没有直接关…

cleanmymac有必要买吗 macbook空间不足怎么办 清理macbook磁盘空间

大家早上好,中午好,下午好,晚上好。 文章有点长,建议先收藏。 macbook是一款非常受欢迎的笔记本电脑,它拥有优秀的性能和设计,但是也有一个常见的问题,就是磁盘空间不足。如果你的macbook经常…

【技术前沿】数字孪生技术助推城市智慧供热:探讨换热站3D可视化的创新之路

换热站作为供热系统不可或缺的一部分,其能源消耗对城市环保至关重要。在双碳目标下,供热企业可通过搭建智慧供热系统,实现供热方式的低碳、高效、智能化,从而减少碳排放和能源浪费。 通过应用物联网、大数据等高新技术&#xff0…

ST股票预测模型(机器学习_人工智能)

知己知彼,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必贻。--《孙子兵法》谋攻篇 ST股票 ST股票是指因连续两年净利润为负而被暂停上市的股票,其风险较高,投资者需要谨慎…

移动端事件

一、移动端事件类型 touchstart:手指按下事件,类似 mousedowntouchmove:手指移动事件,类似 mousemovetouchend 手指抬起事件,类似 mouseup var box document.querySelector(.container); box.addEventListener(touc…

Echarts实现3D柱状图

Echarts实现3D柱状图 效果图代码 效果图 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cbar3d-dataset&gl1 --> <!DOCTYPE html> <html lang"en" style"height: 100%"> <head><meta chars…

新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】

❤️以下展示为全部烟花特效效果 ❤️下方仅展示部分代码 ❤️源码获取见文末 🎀HTML5烟花喷泉 <style> * {padding:0;margin:0; } html,body {positi