【RabbitMQ】安装详解 什么是MQ RabbitMQ介绍

文章目录

  • Ubuntu环境安装
    • 一、安装Erlang
    • 二、安装RabbitMQ
    • 三、安装RabbitMQ管理界面
    • 四、启动服务并访问
      • ① 启动服务并且查看状态
      • ② 添加管理员用户并添加权限
      • ③ 通过 IP:port 访问界面
  • RabbitMQ的使用和配置
    • 一、相关服务操作
    • 二、修改端口号
      • ① 查找 rabbitmq 位置
      • ② 新增配置文件 rabbitmq.conf
      • ③ 修改 rabbitmq-defaults 文件,添加配置文件路径
    • 三、卸载RabbitMQ
      • ① 停止RabbitMQ服务
      • ② 查找RabbitMQ安装情况
      • ③ 卸载rabbitmq已安装的相关内容
      • ④ 卸载Erlang
  • Windows操作RabbitMQ
  • 前言
  • 什么是MQ
  • MQ的作用
  • 为什么选择RabbitMQ
    • 1. Kafka
    • 2. RocketMQ
    • 3. RabbitMQ
  • RabbitMQ介绍

Ubuntu环境安装

一、安装Erlang

RabbitMQ`需要`Erlang`语言的支持,在安装`RabbitMQ`之前需要安装`erlang#更新软件包sudoapt-getupdate#安装erlangsudoapt-getinstallerlang

查看erlang版本

root@hcss-ecs-0bb1:~# erlErlang/OTP22[erts-10.6.4][source][64-bit][smp:2:2][ds:2:2:10][async-threads:1]Eshell V10.6.4(abort with ^G)

退出命令:

halt()

二、安装RabbitMQ

# 更新软件包sudoapt-getupdate# 安装rabbitmqsudoapt-getinstallrabbitmq-server# 确认安装结果systemctl status rabbitmq-server

三、安装RabbitMQ管理界面

root@hcss-ecs-0bb1:~# sudo rabbitmq-plugins enable rabbitmq_managementEnabling plugins onnoderabbit@hcss-ecs-0bb1: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@hcss-ecs-0bb1... The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch started3plugins. root@hcss-ecs-0bb1:~#

四、启动服务并访问

① 启动服务并且查看状态

#启动rabbitmqsudoservicerabbitmq-server start#查看状态sudosystemctl status rabbitmq-server

② 添加管理员用户并添加权限

sudorabbitmqctl add_user 账号 your_passwordsudorabbitmqctl set_user_tags 密码 administratorsudorabbitmqctl set_permissions -p / 账号".*"".*"".*"

RabbitMQ 用户角色分为 Administrator、Monitoring、Policymaker、Management、Impersonator、None 共六种角色

  1. Administrator超级管理员,可登陆管理控制台(启用managementplugin的情况下),可查看所有的信息,并且可以对用户、策略(policy)进行操作。
  2. Monitoring监控者,可登陆管理控制台(启用managementplugin的情况下),同时可以查看 rabbitmq 节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  3. Policymaker策略制定者,可登陆管理控制台(启用managementplugin的情况下),同时可以对 policy 进行管理。但无法查看节点的相关信息。
  4. Management普通管理者,仅可登陆管理控制台(启用managementplugin的情况下),无法看到节点信息,也无法对策略进行管理。
  5. Impersonator模拟者,无法登录管理控制。
  6. None其他用户,无法登陆管理控制台,通常就是普通的生产者和消费者。

③ 通过 IP:port 访问界面

http://云服务器地址:15672/,然后输入添加的账号密码即可!(15672为默认端口号,云服务器需要开启端口)

RabbitMQ的使用和配置

一、相关服务操作

# 启动服务sudosystemctl start rabbitmq-server# 停止服务sudosystemctl stop rabbitmq-server# 重启服务sudosystemctl restart rabbitmq-server# 添加开机启动服务sudosystemctlenablerabbitmq-server# 检查服务状态sudosystemctl status rabbitmq-server

二、修改端口号

① 查找 rabbitmq 位置

[lucf@VM-8-12-centos ~]$whereisrabbitmq rabbitmq: /usr/lib/rabbitmq /etc/rabbitmq

② 新增配置文件 rabbitmq.conf

/etc/rabbitmq路径下创建rabbitmq.conf文件,并添加以下内容:

# 修改client端口为8942(默认为5672)listeners.tcp.default=8942# 修改管理界面端口为8943(默认为15672)management.tcp.port=8943

③ 修改 rabbitmq-defaults 文件,添加配置文件路径

文件路径:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.30/sbin/rabbitmq-defaults

编辑rabbitmq-defaults,在文本最后添加如下代码

# 添加配置路径到文件中,保存退出CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf

三、卸载RabbitMQ

① 停止RabbitMQ服务

sudosystemctl stop rabbitmq-server

② 查找RabbitMQ安装情况

dpkg -l|greprabbitmq

③ 卸载rabbitmq已安装的相关内容

sudoapt-getpurge --auto-remove rabbitmq-server

④ 卸载Erlang

  1. 查看erlang安装的相关列表

    dpkg -l|greperlang
  2. 卸载erlang已安装的相关内容

    sudoapt-getpurge --auto-remove erlang

Windows操作RabbitMQ

将 RabbitMQ 可执行文件目录添加到环境变量中,方便下面指令执行,并且要用管理员身份执行

# 启动 RabbitMQ 服务(连同 Erlang)net start RabbitMQ# 停止 RabbitMQ 服务(完全关闭,包括 Erlang VM)net stop RabbitMQ# 设置 RabbitMQ 开机自启sc config RabbitMQstart=auto# 取消开机自启(手动启动)sc config RabbitMQstart=demand

前言

​ Rabbit,兔子的意思

​ 互联网行业很多公司,都喜欢用动物命名产品,或者作为公司的logo,吉祥物。比如:腾讯的企鹅,京东的狗,美团的袋鼠,携程的海豚,阿里就更多了,蚂蚁,飞猪,天猫,菜鸟,闲鱼,盒马…更是以一己之力,组建了一个动物园…

Rabbit也是一个公司名。MQmessage queue)消息队列的意思,RabbitMQRabbit企业下的一个消息队列产品。

RabbitMQ是一个实现了AMQP的消息队列服务,是当前主流的消息中间件之一。

AMQP,即Advanced Message Queuing Protocol(高级消息队列协议),是一个通用的应用层协议,提供统一消息服务的协议,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端或中间件、开发语言等条件的限制。

什么是MQ

MQ(Message queue),从字面意思上看,本质是个队列FIFO先入先出,只不过队列中存放的内容是消息(message)而已。消息可以非常简单,比如只包含文本字符串,JSON等,也可以很复杂,比如内嵌对象。

MQ 多用于分布式系统之间进行通信。

系统之间的调用通常有两种方式:

  1. 同步通信

    1. 直接调用对方的服务,数据从一端发出后立即就可以达到另一端。
  2. 异步通信

    1. 数据从一端发出后,先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送给另一端。

    2. 容器的一个具体实现就是MQ

RabbitMQ就是MQ的一种实现!

MQ的作用

MQ主要工作是接收并转发消息,在不同的应用场景下可以展现不同的作用

可以把MQ想象成一个仓库。采购部门进货之后,把零件放进仓库里,生产部门从仓库中取出零件,并加工成产品。MQ和仓库的区别是,仓库里放的是物品,MQ里放的是消息,仓库负责存储物品,并转发物品,MQ负责存储和转发消息。

  1. 异步解耦:在业务流程中,一些操作可能非常耗时,但并不需要即时返回结果。可以借助MQ把这些操作异步化,比如用户注册后发送注册短信或邮件通知,可以作为异步任务处理,而不必等待这些操作完成后才告知用户注册成功。
  2. 流量削峰:在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果以能处理这类峰值为标准而投入资源,无疑是巨大的浪费。使用MQ能够使关键组件支撑突发访问压力,不会因为突发流量而崩溃。比如秒杀或者促销活动,可以使用MQ来控制流量,将请求排队,然后系统根据自己的处理能力逐步处理这些请求。
  3. 消息分发:当多个系统需要对同一数据做出响应时,可以使用MQ进行消息分发。比如支付成功后,支付系统可以向MQ发送消息,其他系统订阅该消息,而无需轮询数据库。
  4. 延迟通知:在需要在特定时间后发送通知的场景中,可以使用MQ的延迟消息功能,比如在电子商务平台中,如果用户下单后一定时间内未支付,可以使用延迟队列在超时后自动取消订单

为什么选择RabbitMQ

目前业界有很多的MQ产品,例如RabbitMQRocketMQActiveMQKafkaZeroMQ等,也有直接使用Redis充当消息队列的案例,这些消息队列,各有侧重,也没有好坏,只有适合不适合,在实际选型时,需要结合自身需求以及MQ产品特征,综合考虑。

1. Kafka

Kafka一开始的目的就是用于日志收集和传输,追求高吞吐量,性能卓越,单机吞吐达到十万级,在日志领域比较成熟,功能较为简单,主要支持简单的MQ功能,如果有日志采集需求,肯定首选kafka

2. RocketMQ

RocketMQ采用Java语言开发,由阿里巴巴开源,后捐赠给了Apache

它在设计时借鉴了Kafka,并做出了一些自己的改进,青出于蓝而胜于蓝,经过多年双十一的洗礼,在可用性、可靠性以及稳定性等方面都有出色的表现。适合对于可靠性比较高,且并发比较大的场景,比如互联网金融。但支持的客户端语言不多,且社区活跃度一般。

3. RabbitMQ

采用Erlang语言开发,MQ功能比较完备,且几乎支持所有主流语言,开源提供的界面也非常友好,性能较好,吞吐量能达到万级,社区活跃度也比较高,比较适合中小型公司,数据量没那么大,且并发没那么高的场景。

RabbitMQ介绍

RabbitMQ官网:RabbitMQ: One broker to queue them all | RabbitMQ

RabbitMQ是采用Erlang语言实现AMQPAdvanced Message Queuing Protocol,高级消息队列协议)的消息中间件,它最初起源于金融系统领域,为了在分布式系统中存储和转发消息而设计的。

在此之前,有一些消息中间件的商业实现,比如微软的MSMQMicroSoft Message Queue),IBMWebSphere等。但是他们价格太贵了,一般只应用于大型组织机构。

RabbitMQ开发始于2006年,是由Rabbit Technologies开发并且提供商业支持的。之所以取名为Rabbit,是因为兔子行动非常迅速且繁殖起来非常疯狂,RabbitMQ的开创者认为这个名字再合适不过了。

2010年4月,Rabbit TechnologiesVMware旗下的SpringSource收购,在2013年5月被并入Pivotal

其实VMwarePivotal本质上是一家的。不同的是,VMware是独立上市子公司,而Pivotal是整合了EMC的某些资源,其中我们现在使用的Spring系列框架,就是Pivotal公司热门的产品之一。

直到后来Pivotal将其开源,RabbitMQ才逐渐走向大众!

RabbitMQ发展到今天,已经被越来越多的人认可,尤其是互联网公司,已经有着大规模的场景应用,这和它在易用性,扩展性,可靠性和高可用性等方面的卓越表现是分不开的。接下来我们就一起来深入了解一下RabbitMQ

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

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

相关文章

通俗解释Elasticsearch如何提升日志查询效率

为什么你的日志查得慢?Elasticsearch 是如何做到秒级检索的?你有没有过这样的经历:线上服务突然报错,用户投诉不断,而你却只能一台台登录服务器,执行grep "ERROR" app.log,眼睁睁看着…

全面解析SEO从零入门的优化策略与技巧

在学习SEO的过程中,内容概述是不可或缺的一步。该部分帮助读者迅速了解文章的主旨和结构,让他们清楚接下来会讨论哪些具体内容。内容概要通常包括SEO基础知识、优化技能、排名因素、流量获取策略等核心话题,这些都是初学者必须掌握的要点。此…

通俗解释Elasticsearch全文搜索与精确查询的区别

Elasticsearch中全文搜索与精确查询:从原理到实战的深度解析你有没有遇到过这种情况:在系统里输入“苹果手机”,结果把“水果批发”也搜出来了?或者你想查某个特定用户ID,却因为用了错误的查询方式而得不到结果。这背后…

高输入阻抗放大器在Multisim中的建模与仿真

高输入阻抗放大器在Multisim中的建模与仿真:从理论到实战的完整路径你有没有遇到过这样的情况?传感器输出明明是10mV的信号,可送到ADC之前却只剩3mV——还没经过任何处理就“缩水”了大半。问题出在哪?往往不是电路设计错了&#…

我干开发这些年-交易中台篇

开篇碎碎念,有读者在催更了,看到留言的那一刻,想起自己立下的flag,顿时觉得羞愧难当。这也是写公众号的一个好处——有读者督促,让拖延症患者也不得不动起来。此前写了《交易系统篇》,今天来聊聊交易中台。…

我干开发这些年-电商业务架构之全局篇

自2018年毕业以来,我在互联网行业已摸爬滚打七年。从最初的财务平台,到业财一体化、仓储物流、电商交易,再到如今的履约履行,每一次业务转换都是一次认知升级和能力拓展 然而正如古人所言:"不识庐山真面目&#…

基于 YOLOv8 的太阳能电池片缺陷智能检测识别实战 [目标检测完整源码]

基于 YOLOv8 的太阳能电池片缺陷智能检测识别实战 [目标检测完整源码] 引言:工业质检为何需要新一代视觉算法 在光伏制造流程中,太阳能电池片的质量直接决定组件效率与使用寿命。裂纹、断栅、暗斑、划痕等缺陷如果未能在早期被准确识别,将在…

老旧显卡驱动找不到怎么办?2026最新老显卡驱动下载安装完美解决方案

核心问题解答: 老旧显卡驱动无法安装或找不到资源,主要是因为芯片厂商已停止技术支持(EOL),导致官网下架旧版驱动且新系统(如Win10/11)不再内置兼容驱动。对于绝大多数用户,最简单且…

一文说清ArduPilot与Pixhawk硬件匹配要点

ArduPilot 与 Pixhawk 到底怎么配?一文讲透硬件兼容的底层逻辑 你有没有遇到过这样的情况:新买的 Pixhawk 飞控,刷上 ArduPilot 固件后 USB 能连上,地面站也能识别,但 GPS 死活不工作、电机没反应,甚至自检…

我干开发这些年-交易中台篇之核心设计

交易中台核心能力实现:以下单页渲染为例 引言 上一篇讲了交易中台的由来和作用,交易中台就是将变与不变发挥到极致的软件架构。将不变的部分固化在中台,变的部分开放出去提供给各个业务线自己定制。 本篇讲交易中台具体是如何实现这种能力…

SSM校园快件配送系统80rnf(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能:配送员,机会信息,配送订单,配送处理,客户,配送分配,配送反馈,客户投诉,配送员投诉,公告信息,联系结果SSM校园快件配送系统开题报告一、课题研究背景与意义(一)研究背景随着高校校园快件量逐年激增,现…

Realtek音频驱动与Cirrus Logic共存场景操作指南

Realtek 与 Cirrus Logic 音频设备共存实战指南:打破驱动垄断,释放专业音质潜力 你有没有遇到过这样的场景? 一台高端迷你主机或定制工作站,主板集成了 Realtek ALC 系列声卡 ,同时又搭载了一颗 Cirrus Logic 高端…

双列召回 关注流召回 + 推荐流召回

在推荐系统中,召回模块负责从海量候选集中快速筛选出初步的几千到上万个item,为后续排序提供输入。由于推荐系统通常同时支持用户主动探索(如关注流)和被动接收(如推荐流),召回策略需要针对不同…

阿里云ECS出现could not find driver的环境搭建解析

阿里云ECS部署PHP应用时“could not find driver”错误的深度排查与实战解决 你有没有遇到过这种情况:代码在本地跑得好好的,一上阿里云ECS就报错—— SQLSTATE[HY000] [2002] could not find driver ?页面直接500,日志里翻来覆…

组合逻辑电路结构解析:通俗解释核心要点

组合逻辑电路:从门电路到CPU核心的“即时响应”引擎你有没有想过,为什么按下键盘上的“A”,屏幕上就能立刻显示出来?或者,在CPU执行一条加法指令时,结果几乎是瞬间得出的?这背后离不开一类看似简…

文献分享--B细胞破坏三级淋巴结构形成并抑制抗肿瘤免疫

作者,Evil Genius现在发个好一点的文章都要求多组学了,基因组 单细胞 空间算是风口的多组学,不过随着认识的深入, 蛋白结构的研究也慢慢纳入了进来,其中最核心的扩展方向就是空间转录组发现了细胞对的共定位&#xf…

数字电路基础知识之组合逻辑:核心要点解析

深入理解组合逻辑:数字系统设计的基石你有没有遇到过这样的情况——在FPGA开发中,明明逻辑写得没错,仿真也通过了,可烧录到板子上却时不时冒出奇怪的输出毛刺?或者在做加法器设计时,发现运算速度始终上不去…

黄仁勋年终总结:DeepSeek是去年对美国AI贡献最大的一项工作!AI的算力成本每年下降超10倍;预训练从未结束;5年内会出现大量垂直AI公司

黄仁勋指出,随着市场不断扩大,每个模型公司都可以选择自己想要差异化竞争的垂直方向或细分领域,比如“最强的编程模型”或“最容易使用、最适合大众的消费级产品”,他预测大模型领域未来会呈现出高度多样化的形态。“即便 ChatGPT…

“2025年度成语“揭晓。坚定不移、脱颖而出、绿水青山等十个成语上榜 | 美通社头条

、美通社消息:1月7日,"2025年度成语"在"中国成语典故之都"河北省邯郸市发布。十个"年度成语"分别是:坚定不移、脱颖而出、绿水青山、大展宏(鸿)图、砥柱中流、后生可畏、浴血奋战、防微杜渐、海纳百川、宾至如…

SDR接收FM广播信号:从零实现的完整示例流程

用 RTL-SDR 听 FM 广播:手把手教你把电磁波变成音乐你有没有想过,窗外飘过的那些广播声,其实是空中飞驰的无线电波?它们以每秒几亿次的频率振荡,在空气中穿行数十公里,最终被收音机“听”到。而今天&#x…