RabbitMQ入门 — 阿里云服务器安装RabbitMQ

RabbitMQ入门 — 阿里云服务器安装RabbitMQRabbitMQ 是什么 浅谈 RabbitMQ

在这里插入图片描述

一、什么是MQ?

消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。

其主要用途:不同进程Process/线程Thread之间通信。

队列是一种先进先出的结构:FIFO

把要传输的数据放在队列中

把数据放到消息队列叫生产者

从消息队列取出消息叫做消费者

二、什么是RabbitMQ?

RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

RabbitMQ的特性

  • 可伸缩性:集群服务
  • 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存

三、使用RabbitMQ的好处

☁️解耦

系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!

系统A可以生成一个id,然后系统B需要这个id,系统A去调用了系统B

过了段时间,系统C说也要系统A的id,那么这时接触系统B的引用,去讲id传给系统C

这时又来了系统D,系统D也要系统A的id,系统A又解除了系统C,去调用了系统D,反反复复,很麻烦

系统A的负责人觉得改来改去太麻烦了,没意思,跑路了。

过段时间,公司来了位大佬,大佬说将系统A的id,存入消息队列,谁需要谁去拿,这样系统A就不用来回改动了,完美解决了参数调用问题!

系统A不关心谁去调用id,只负责生产数据并存入消息队列,其它系统即使挂了或请求超时,也跟系统A没有任何关系

这样就实现了系统A、B、C、D之间的解耦!

⛄异步

再来看看这种情况,系统A还是直接调用系统B、C、D

系统A:主要业务

系统B:短信业务

系统C:邮箱业务

系统D:处理后续业务

系统A下单成功后会去调用系统B,但是如果一个一个的调用,会大大的降低效率,假设每个业务执行时间100ms,那么4个业务执行完毕就是400ms,这种就被称为阻塞执行

那么我们的消息队列采用了异步机制,当我们下单完成后,会去异步的调用其它业务,会极大的降低系统的执行时间,提升效率!

⚡削峰/限流

例如:双十一大促销,这时的流量是很大很大的,并发很高,比如每秒5000个请求,假设现在又3台机器处理,并且每台机器每秒只能处理1500次请求,那么多出来的请求500请求,会将系统搞垮的,这时我们可以将多出来的请求放入消息队列中

这样即使每秒有10000个请求,也不会将系统搞垮,会在消息队列中等待,由系统去分配请求处理

四、Linux环境下手动安装RabbitMQ

?环境准备

阿里云Centos7.6服务器

lsb_release -a 

在这里插入图片描述

在2022年5月,RabbitMQ官方发布推文宣称最新的版本已经不支持Centos7.x系列,但是我们可以通过下载之前支持的版本来部署!

下载RabbitMQ RPM包

RabbitMQ下载

在这里插入图片描述

下载成功如下

在这里插入图片描述

下载ErLang RPM包

这里需要注意,下载的版本要和RabbitMQ对应,必须支持下载的ErLang版本

在这里插入图片描述

我们找到下载的是 3.8.13 ,支持的最低是 22.3 最高是 23.x

下载ErLange

在这里插入图片描述

点击Download下载或单机wget复制下在Linux下 下载

使用FileZilla上传至阿里云服务

阿里云服务器在 /usr/local 下新建 rabbitmq 文件夹

在这里插入图片描述

上传完成

安装ErLang

# 解压erlang文件 rpm -Uvh erlang-23.2.7-2.el7.x86_64.rpm #安装erlang yum install -y erlang 

在这里插入图片描述

查看erlang版本

erl -v 

在这里插入图片描述

♻️安装并启动RabbitMQ

在安装RabbitMQ之前要安装一个插件

yum install -y socat 

在这里插入图片描述

解压并安装RabbitMQ

# 解压 rpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm # 安装 yum install -y rabbitmq-server 

在这里插入图片描述

启动RabbitMQ服务

# 启动服务 systemctl start rabbitmq-server # 查看当前的运行状态 systemctl status rabbitmq-server # 重启服务 systemctl restart rabbitmq-server # 停止服务 systemctl stop rabbitmq-server 

在这里插入图片描述

可以看到,启动成功!

五、手动安装RabbitMQWeb管理界面和授权

⌛安装并启动RabbitMQ管理插件

# 安装RabbitMQWeb管理插件 rabbitmq-plugins enable rabbitmq_management # 安装完成后重启rabbitmq服务 systemctl restart rabbitmq-server 

在这里插入图片描述

启动成功,默认Web页面占用端口为 15672,我们去阿里云服务器控制台开放此端口

在这里插入图片描述

测试访问

浏览器输入 http://您的ip地址:15672

出现如下界面

在这里插入图片描述

默认登录账号密码 guest guest 登录测试
在这里插入图片描述

这个意思是我们只能通过本地来登录guest 账户

下面给出解决方案

?添加账户

# 添加一个用户 rabbitmqctl add_user admin admin # 将用户设置为admin权限 rabbitmqctl set_user_tags admin administrator 

在这里插入图片描述

✳️再次测试访问

在这里插入图片描述

访问成功,手动安装成功!

六、Linux环境下Docker安装RabbitMQ

⌛安装Docker

先查看本机是否存在Docker,删除旧版本Docker

查看docker 版本

docker version 

在这里插入图片描述

没有docker,我们执行以下命令,删除残余文件

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 

进入Linux根目录,安装Docker

# 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。 yum install -y yum-utils # 安装阿里云配置 yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装Docker 最新引擎

yum install docker-ce docker-ce-cli containerd.io 

在这里插入图片描述

输入y确认即可!

?️配置阿里云加速镜像

打开阿里云控制台,弹性计算 –> 容器与镜像服务

在这里插入图片描述

打开之后选择 镜像工具 –> 镜像加速器,复制内容即可
在这里插入图片描述


进入Linux服务器根据步骤配置镜像加速器

# 创建docker文件夹 sudo mkdir -p /etc/docker # 打开文件并配置内容 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://pfjide5p.mirror.aliyuncs.com"] } EOF # 重启服务 sudo systemctl daemon-reload # 启动docker sudo systemctl restart docker 

新建文件夹

在这里插入图片描述

配置内容,并重启服务

在这里插入图片描述

根据步骤一步步创建即可!

♨️安装并启动RabbitMQ

# 获取镜像,这个是带着web页面的 docker pull rabbitmq:management # 运行 rabbitmq 并映射端口 设置默认账户密码admin docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management 

在这里插入图片描述

❇️测试RabbitMQ

浏览器输入 http://您的ip地址:15672 并输入admin admin

出现如下界面

在这里插入图片描述

至此,在Docker内安装RabbitMQ完成!

⛵小结

以上就是【Bug 终结者】对RabbitMQ入门 – 阿里云服务器安装RabbitMQ简单的概述,RabbitMQ是很常用的中间件,使用它,可提高程序的性能,底层使用通道,多路复用等,完美的利用CPU完成任务,RabbitMQ可承受高并发,拥有高性能,可谓是开发利器!

如果这篇【文章】有帮助到你,希望可以给【Bug 终结者】点个赞?,创作不易,如果有对【后端技术】、【前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】???!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233604.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker 容器内部访问宿主机_docker访问宿主机文件

    docker 容器内部访问宿主机_docker访问宿主机文件在使用Docker部署应用时,Docker推荐的方式是将应用及其所依赖的服务(MySQL,Redis等)均使用Docker部署,并通过link或自定义网络相连接。但是,当应用所依赖的服务被安装在宿主机上时,我们需要让容器中的应用能够访问到部署在宿主机上的服务。本文将介绍实现这一目的的几种方案,并分析其优缺点。首先我们需要了解一些关于Docker网络的基础知识。Docker网络Docker提供…

    2022年8月20日
    62
  • List数组转换JSON格式

    List数组转换JSON格式最近在写java,然后leader需要几个接口,里面的东西就是json格式。然后需求明白后,想了想思路:先把需要的东西从库里拿出来放到一个数组里面,然后再将数组转换成json,大体思路确定后,开始敲代码。首先List一个数组,将要转换的东西先放到configs数组里面:List&lt;Class&gt;configs=newArrayList&lt;Class&gt;();…

    2022年6月21日
    27
  • HTTPS和HTTP的区别是什么?

    HTTPS和HTTP的区别是什么?

    2021年10月14日
    50
  • 看板娘代码

    看板娘代码大部分摘自:https://www.cnblogs.com/hean/p/11167216.html需要三个文件和一个可选文件waifu.css(看板娘在页面的位置以及大小)waifu-tips.js(看板娘的语言设置)live2d.min.js(一些点击之后的动作)flat-ui.min.css(看板娘的选项PS:右面的选项,不需要可以不配置)链接:https://…

    2025年5月24日
    0
  • pycharm中如何导入库_如何把手变成手控

    pycharm中如何导入库_如何把手变成手控大家都知道,Python是一个极其方便的由库构建的编程语言。比如机器学习的库sklearn,文件读取pandas,文件读写xlwt,xlrt,矩阵运算numpy等等等等等等等等等等,多到你无法想象!那到底如何导入Python库呢?我们今天就来学习一下~点击File->NewProject,创建一个PyCharm项目,然后点击File->Settings->P…

    2022年8月26日
    3
  • Thinkphp5学习笔记

    Thinkphp5学习笔记架构Thinkphp5目录架构thinkphp应用部署目录├─application应用目录(可设置)│├─common公共模块目录(可更改)│├─in

    2021年12月13日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号