RabbitMQ端口操作

1、什么是RabbitMQ

RabbitMQ 是一种可靠且成熟的消息传递和流式处理代理,易于部署在云环境、本地和本地计算机上。目前,全球有数百万人在使用它。

RabbitMQActiveMQRocketMQKafka
公司/社区RabbitApache阿里Apache
开发语言ErlangJavaJavaScala&Java
协议支持AMQP,XMPP,SMTP,STOMPOpenWire,STOMP,REST,XMPP,AMQP自定义协议自定义协议
可用性一般
单机吞吐量一般非常高
消息延迟微秒级毫秒级毫秒级毫秒以内
消息可靠性一般一般

从这个表格可以看出,在现在最常用的几个消息队列中,RabbitMQ是最好且最实用的,所以这也就是为什么大众都喜欢用RabbitMQ的原因

1.1、特点

可互操作

RabbitMQ 支持多种开放标准协议,包括 AMQP 1.0 和 MQTT 5.0。有多个可用的客户端库,可以与您选择的编程语言一起使用,只需选择一个。没有供应商锁定!

灵活

RabbitMQ 提供了许多选项,您可以组合这些选项来定义消息如何从发布者发送到一个或多个使用者。路由、筛选、流式处理、联合身份验证等,应有尽有。

可靠

通过确认消息传输和跨集群复制消息的能力,您可以使用 RabbitMQ 确保您的消息是安全的。

1.2、优点

可能你会问:明明通过调用接口就可以进行系统之间的交流了,为什么还要用MQ呢?使用MQ当然有他的好处的,主要的好处是三点:解耦、异步和削峰。

1.2.1、解耦

我们通过使用MQ可以进行系统之间的解耦,使得系统之间的耦合度比较低。这也符合高内聚,低耦合的原则。

1.2.2、异步

消息队列的主要特点是异步处理,主要目的是减少请求响应时间,实现非核心流程异步化,提高系统响应性能。

所以典型的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作,作为消息放入消息队列。

1.2.3、削峰

流量削锋也是消息队列中的常用场景,一般在秒杀或团抢活动中使用广泛。

应用场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,一般需要在应用前端加入消息队列。

2、RabiitMQ使用

1、安装

以下的安装都是基于虚拟机安装的,如果没有虚拟机但是想使用虚拟机操作RabbitMQ

可以翻看作者以前的作品docker容器的安装以及用法_docker容器的安装和使用-CSDN博客

这里面有虚拟机安装的教程

如果只想从windows系统中操作的话,也可以查看这位作者:windows安装RabbitMQ

首先打开虚拟机,并且启动docker

输入以下指令,直接复制粘贴即可

docker run \
 -e RABBITMQ_DEFAULT_USER=itheima \
 -e RABBITMQ_DEFAULT_PASS=123321 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network hmall\
 -d \
 rabbitmq:3.8-management

中间的网络/账号密码可以根据自己的需求来更改

安装成功之后,就可以查看MQ是否安装成功了

docker ps

输入这段指令,表示查看现在正在运行的容器有什么,如果显示上面这个就代表已经安装成功了

可以进行下一步了,如果什么也没显示,可能是没启动,也可能是没安装成功

docker ps -a

还可以使用这段指令,表示查看所有存在的容器,如果还是没有的话就代表安装失败了

如果有的话,可以执行下面这段指令来启动它

docker start mq

在浏览器输入自己的IP+15672,可以进入mq的端口地址

如果不知道自己的IP是多少的,在虚拟机中输入ifconfig,可以查看

输入ifconfig后,在下面找到ens33,右边的inet旁边的数字就是自己的虚拟机IP

如果是Windows的话,直接在地址栏输入localhost:15672就可以了

能看到这个页面,表示rabbit端口已经成功进入了

其中包含几个概念:

  • publisher:生产者,也就是发送消息的一方

  • consumer:消费者,也就是消费消息的一方

  • queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理

  • exchange:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。

  • virtual host:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue

上述这些东西都可以在RabbitMQ的管理控制台来管理,下一节我们就一起来学习控制台的使用。

2、收发消息

我们打开Exchanges选项卡,发相已经存在了很多的交换机

这些都是用户创建时会自带的交换机,我们可以直接使用这些交换机,也可以自己创建

下方就是创建交换机的地方,我们一般只需要更改Name和Type即可,其他的直接根据默认的选项就可以了

首先我们先使用默认的交换机,先发一条消息试试

直接点击这个以 fanout 结尾的交换机

往下面翻,在这里可以发送消息,输入完毕后,点击下面的按钮即可

当点击提交后,就可以发现弹出了一个框:消息以发送,但未完成

这是为什么呢,因为此时控制台模拟了生产者发送的消息。由于没有消费者存在,最终消息丢失了,这样说明交换机没有存储消息的能力。

所以说我们需要创建一个消费者来获取这个信息

此时需要打开Queue选项,在下方创建一个队列,作用是用来接收它

同样,只需要修改Name即可,所以我们设置名字为queue为后缀

点击下方的Add queue后,就在上方可以看到多了一条队列,这个时候我们就可以将刚刚到交换机给他进行匹配,这样交换机发送消息,这个123.queue1就会接收到消息

点回刚刚的交换机,在这里给他匹配,只需要输入刚刚的名字就可以了

添加之后,这里就会多出一条队列,这样我们就可以开始发送消息,消息发送后,这条队列可以收到我们刚刚发送的消息

还是在这里输入,然后点击发送按钮

这个提示框才表示我们真正的发送成功了,所以交换机的任务就已经完成了

来到这个队列,找到下面的Get Message按钮,表示“获取消息”,这样我们就可以看到刚刚交换机发送过来的消息了

如果想一次让两个队列接收消息,只需再添加一个队列就可以了

3、数据隔离

可以看到,这里有三个用户,但是为什么刚刚只显示了123的交换机呢?

是因为在右上角中,我只选择了123的用户,也就是说我现在只能看到123的信息,包括队列,包括交换机都是一样的

这里可以看到,我选择了All后,将所有的都显示出来了,所以说如果我们只想对一个用户的东西进行操作的话,就可以在这里进行选择,我们将这个称为数据隔离


4、创建用户

创建用户的话也是非常简单,只需要在上方的选项卡中选择Admin

这里就是我们可以添加的地方

Username:用户名

这里的密码可以选择

Password:自定义密码

No password:舍弃密码

一般我们都选择自定义密码,所以不需要选择它

最后在这个框中,直接点击Admin就可以了,这个代表最高权限,这样就创建完毕了

然后点击Add user就可以了

这个时候,我们退出登录,然后重新使用新用户再登陆一遍,如果可以正常进入,代表我们创建完毕了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式 创建型 建造者模式(Builder Pattern)与 常见技术框架应用 解析

单例模式(Singleton Pattern),又称生成器模式,是一种对象构建模式。它主要用于构建复杂对象,通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将…

2、pycharm常用快捷命令和配置【持续更新中】

1、常用快捷命令 Ctrl / 行注释/取消行注释 Ctrl Alt L 代码格式化 Ctrl Alt I 自动缩进 Tab / Shift Tab 缩进、不缩进当前行 Ctrl N 跳转到类 Ctrl 鼠标点击方法 可以跳转到方法所在的类 2、使用pip命令安装request库 命令:pip install requests 安装好了…

jenkins修改端口以及开机自启

修改Jenkins端口 方式一:通过配置文件修改(以CentOS为例) 找到配置文件:在CentOS系统中,通常可以在/etc/sysconfig/jenkins文件中修改Jenkins的配置。如果没有这个文件,也可以查看/etc/default/jenkins&…

破解密码

rhel8/centos8 重置 root 密码 方法 1 : rd.break 第 1 步 重启系统,在下图所示界面按 e 键 第2步 找到linux这行,末尾空格后 输入 rd.break 第3步 查看,可选步骤 这里 sysroot 是以只读的形式挂载的,所以要以可读可…

时间序列预测算法---LSTM

目录 一、前言1.1、深度学习时间序列一般是几维数据?每个维度的名字是什么?通常代表什么含义?1.2、为什么机器学习/深度学习算法无法处理时间序列数据?1.3、RNN(循环神经网络)处理时间序列数据的思路?1.4、RNN存在哪些问题? 二、…

从零用java实现 小红书 springboot vue uniapp (7)im 在线聊天功能 关注功能

前言 移动端演示 http://8.146.211.120:8081/#/ 前面的文章我们主要完成了笔记的点赞和收藏及留言功能 今天我们讲解点赞关注 im 聊天功能 关注 我们需要有一个关注的操作 这里我们复用个人中心页面 按钮会有三种形式 关注 取消关注 互相关注三种样式 <view class"gui…

PP模块部分BAPI函数

工艺路线 BAPI_ROUTING_CREATE 创建工艺路线 BAPI_ROUTING_EXISTENCE_CHECK 检查工艺路线是否存在 参考操作集 BAPI_REFSETOFOPERATIONS_CREATE 创建参考操作集 BAPI_REFSETOFOPR_EXISTENCE_CHK 检查参考操作集是否存在 计划订单 BAPI_PLANNEDORDER_CREATE 创建计划订单 BAPI…

Tomcat解析

架构图 核心功能 Tomcat是Apache开源的轻量级Java ServletServlet容器&#xff0c;其中一个Server&#xff08;Tomcat实例&#xff09;可以管理多个Service&#xff08;服务&#xff09;&#xff0c;一个Service包含多个Connector和一个Engine&#xff0c;负责管理请求到应用的…

【openGauss】正则表达式次数符号“{}“在ORACLE和openGauss中的差异

一、前言 正则作为一种常用的字符串处理方式&#xff0c;在各种开发语言&#xff0c;甚至数据库中&#xff0c;都有自带的正则函数。但是正则函数有很多标准&#xff0c;不同标准对正则表达式的解析方式不一样&#xff0c;本次在迁移一个ORACLE数据库到openGauss时发现了一个关…

C# 修改项目类型 应用程序程序改类库

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

DataV数据可视化

阿里云 DataV 是一个强大的数据可视化工具&#xff0c;可以帮助用户通过创建丰富的图表、仪表盘、地图和互动视图&#xff0c;将复杂的数据转化为易于理解和分析的可视化信息。DataV主要用于大数据和实时数据的展示&#xff0c;可以帮助企业和个人更直观地理解数据背后的含义&a…

STM32-笔记18-呼吸灯

1、实验目的 使用定时器 4 通道 3 生成 PWM 波控制 LED1 &#xff0c;实现呼吸灯效果。 频率&#xff1a;2kHz&#xff0c;PSC71&#xff0c;ARR499 利用定时器溢出公式 周期等于频率的倒数。故Tout 1/2KHZ&#xff1b;Ft 72MHZ PSC71&#xff08;喜欢设置成Ft的倍数&…

【20250101】Nature正刊:纯仿真强化学习得到外骨骼机器人的自适应控制策略

基本信息 论文标题&#xff1a;Experiment-free exoskeleton assistance via learning in simulation 发表期刊&#xff1a;Nature 发表时间&#xff1a;2024年6月12日 访问链接 论文&#xff1a;https://www.nature.com/articles/s41586-024-07382-4?fromPaywallRectrue 代…

【从零开始】11. LLaMA-Factory 微调 Qwen 模型(番外篇)

书接上回&#xff0c;在完成了 RAGChecker 测试后&#xff0c;离 RAG 应用真正发布还差最后一步 - 基础信息指令微调。考虑到模型还是需要具备一定程度的“自我认知”&#xff0c;因此需要将公司信息“嵌入”到模型里面的。为此&#xff0c;我选择了 LLaMA-Factory&#xff08;…

PowerShell 信息,请参阅 https......_Execution_Policies

文章目录 1. 问题分析2. 检查当前执行策略3. 解决方案&#xff1a;更改执行策略4. 若问题依然存在5. 注意事项 信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about _Execution_Policies。 所在位置 行:1 字符: 3. D:\Users\Documents\WindowsPo…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview&#xff08;概览&#xff09;1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories&#xff08;仓库&#xff09;1 libusb_stm322 savedata3 Fi…

C语言----指针

目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结&#xff1a; 段错误 指针修饰 1. con…

青少年编程与数学 02-006 前端开发框架VUE 01课题、VUE简介

青少年编程与数学 02-006 前端开发框架VUE 01课题、VUE简介 一、前端开发一、前端框架二、Vue.js三、应用场景四、区别五、学习资源六、应用示例说明&#xff1a; 课题摘要:本文介绍了前端开发框架Vue.js的基本概念和特性。Vue.js是一个渐进式JavaScript框架&#xff0c;用于构…

STM32单片机芯片与内部57 SPI 数据手册 寄存器

目录 一、SPI寄存器 1、SPI控制寄存器 1(SPI_CR1)(I2S模式下不使用) 2、SPI控制寄存器 2(SPI_CR2) 3、SPI 状态寄存器(SPI_SR) 4、SPI 数据寄存器(SPI_DR) 5、SPI CRC多项式寄存器(SPI_CRCPR)(I2S模式下不使用&#xff09; 6、SPI Rx CRC寄存器(SPI_RXCRCR)(I2S模式下不…

QT-------------自定义插件和库

以下是一个使用 Qt 实现图表交互操作的示例&#xff0c;涵盖了自定义图表视图类、不同类型的柱状图和饼图等内容。 实现思路 自定义图表视图类&#xff1a;创建一个从 QChartView 派生的自定义类&#xff0c;用于处理图表的交互操作。主窗口设计初始化&#xff1a;在主窗口中…