RabbitMQ下载与安装

本文详细介绍了RabbitMQ的下载与安装过程,包括Erlang环境的搭建、RabbitMQ服务端的安装与配置、常见错误排查及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RabbitMQ下载与安装

首先需要介绍一下rabbitMq。


MQ简介

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。——[百度百科]

什么是RabbitMQ

RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为 面向消息的中间件)。支持Windows、Linux/Unix、MAC OS X操作系统和包括JAVA在内的多种编程语言。

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

官方文档地址:

rabbitMQ的java驱动官方文档地址
版本5.3.0:https://rabbitmq.github.io/rabbitmq-java-client/api/current/overview-summary.html
版本4.7.0:https://rabbitmq.github.io/rabbitmq-java-client/api/4.x.x/overview-summary.html

spring AMQP 官方文档地址
版本1.7.3:https://docs.spring.io/spring-amqp/docs/1.7.3.BUILD-SNAPSHOT/api/

目录

[TOC]来生成目录:

使用场景(解决了什么问题)

名称简单说明
异步处理应用之间的异步处理问题
应用解耦应用之间的解耦问题
流量削峰对应用的流量进行削峰,如秒杀场景
日志处理应用之间的日志收集,假设程序里面每个类,每个方法都要定义日志记录,单单说效率就不好

Rabblit官网地址

Rabblit官网地址:http://www.rabbitmq.com/

下载

进入下载页面
这里写图片描述

根据操作系统的不同,选择不同的版本

这里写图片描述

此处使用CentOS6x版本操作系统安装

这里写图片描述

注意:由于RabbitMQ是使用Erlang语言编写的,我们还必须安装Erlang

这里写图片描述

跑到Erlang下载环境(网页往下拖有Erlang的官方安装方式,此方式不需要下载)

地址:https://www.erlang-solutions.com/resources/download.html

这里写图片描述


开始安装,第一步安装Erlang,第二步安装RabbitMQ

第一步,笔者采用Erlang官方安装方式

注意事项:第一步骤/etc/yum.repos.d/里面的erlang-solutions是需要替换成Erlang官方安装下的配置,否则安装RabbitMQ的时候回报Erlang版本需要大于等于19.3的错误,报错在下面有分析

Erlang官方安装过程如下:

这里写图片描述

这里写图片描述

//下载安装包
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

//
rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc

//在/etc/yum.repos.d/目录下新建一个文件rabbitmq-erlang.repo,然后将下面的粘帖进去
[erlang-solutions]
name=CentOS $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1

//执行安装
sudo yum install erlang

//执行安装esl
sudo yum install esl-erlang

安装成功后图片:

这里写图片描述

输入erl即可进入Erlang

这里写图片描述

第二步,手动安装RabbitMQ

切换到上传rabbitMQ的安装包路径下,执行:
rpm -ivh rabbitmq-server-3.7.7-1.el6.noarch.rpm

这里写图片描述

安装完毕,查看RabbMQ状态:service rabbitmq-server status

设置开启启动:sudo chkconfig rabbitmq-server on
开启WEB管理页面:sudo rabbitmq-plugins enable rabbitmq_management
默认WEB管理的登录帐号和密码统一为:guest

默认RabbitMQ拥有如下端口号:

端口号简单说明
15672WEB管理界面
5672,5671由AMQP 0-9-1和1.0客户端使用,没有和使用TLS
4369epmd,RabbitMQ节点和CLI工具使用的对等发现服务
25672用于节点间和CLI工具通信(Erlang分发服务器端口)并从动态范围分配(默认情况下限于单个端口,计算为AMQP端口+ 20000)
35672-35682CLI工具(Erlang分发客户端端口)用于与节点通信,并从动态范围(计算为服务器分发端口+ 10000到服务器分发端口+ 10010)进行分配。
61613, 61614没有和使用TLS的STOMP客户端(仅当启用了STOMP插件时)
1883, 8883如果启用了MQTT插件,则没有和使用TLS的MQTT客户端
15674STOMP-over-WebSockets客户端(仅当启用了Web STOMP插件时)
15675MQTT-over-WebSockets客户端(仅当启用了Web MQTT插件时)

一般常用就15672和5672

防火墙进行放出端口。

外部访问192.168.153.128:15672/#/users,如下图:

这里写图片描述

但是此时是登录不了的,默认guest只能localhost访问

但是我们并不直接使用guest,我们新建一个新的用户来操作登录

添加RabbitMQ用户:sudo rabbitmqctl add_user root 123456
帐号:root 密码123456

赋予RabbitMQ用户角色:sudo rabbitmqctl set_user_tags root administrator

赋予用户默认vhost的全部操作权限:sudo rabbitmqctl set_permissions -p / root “.” “.” “.*”

查看用户的权限:sudo rabbitmqctl list_user_permissions username

查看全部用户:sudo rabbitmqctl list_users

此操作删除guest用户,我们自己创建新的用户来使用
删除用户:sudo rabbitmqctl delete_user guest

最后一步,操作完毕,要记得重启,记得重启,记得重启。三遍

service rabbitmq-server restart

重启后我们再访问:http://192.168.153.128:15672/#/users进行登录

这里写图片描述

至此,安装结束。。。。


更多操作命令,详情参照RabbitMQ官方文档

地址:https://www.rabbitmq.com/rabbitmqctl.8.html


其中出现的报错问题(报错分析)

执行安装rabbitMQ的时候报错

这里写图片描述

此处为2个问题,第一个问题是Erlang版本需要大于等于19.3版本,第二个问题为没有socat依赖

第一个问题。笔者安装的Erlang为21.0版本,明明是大于19.3版本的。但是却报错了。
使用:yum list | grep erlang再次确认一下查看一下
这里写图片描述

确定版本为21.0,但是却报错。回想了一下,笔者在按照Erlang官方安装的时候,添加了一些东西

原本/etc/yum.repos.d/里面的erlang-solutions,只是添加了官方的给出的代码。并不是替换里面的内容

顺便百度了一下这个问题:https://www.jianshu.com/p/f54dc259a9ed

索性卸载Erlang替换内容再次安装。。

执行yum remove esl-erlang.x86_64进行erlang卸载

解决方案:在/etc/yum.repos.d/目录下新建一个文件rabbitmq-erlang.repo,然后将repo库代码(上面有)粘帖进去

再次执行安装

sudo yum install erlang

果然,再次重新安装Erlang之后,就可以执行安装RabbitMQ了

这里写图片描述

再解决第二个问题,解决方法安装centos的epel的扩展源

yum -y install epel-release

之后执行yum -y install socat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值