大家好,我是袁庭新。今天介绍在不同操作系统中如何搭建RabbitMQ开发环境?

在使用RabbitMQ之前必须预先安装配置,参考RabbitMQ官网说明,RabbitMQ支持多平台安装,例如Linux、Windows、macOS、Docker等。不同架构的芯片对应的RabbitMQ安装包是有区别的。目前市场上主流的芯片架构有:X86架构、ARM架构、RISC-V架构和MIPS架构这四种。

例如,在Linux系统中,如果想查看CentOS版本信息,可以通过以下命令来获取。

[root@localhost ~]# uname -r
5.11.12-300.el7.aarch64

[root@localhost ~]# cat /proc/version
Linux version 5.11.12-300.el7.aarch64 (root@centos7.9) (gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3), GNU ld version 2.30-55.el7.2) #1 SMP Thu Aug 19 09:02:08 UTC 2021

[root@localhost ~]# uname -a
Linux node2 5.11.12-300.el7.aarch64 #1 SMP Thu Aug 19 09:02:08 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

这里,我们以CentOS 7.X系统(ARM架构和X86架构)和Windows系统环境为例,介绍RabbitMQ的安装配置过程。

1.安装Erlang

1.1 Erlang语言介绍

Erlang(['ə:læŋ])是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合构建分布式、实时软并行计算系统。

Erlang运行时环境是一个虚拟机,有点像Java的虚拟机,这样代码一经编译,同样可以随处运行。

RabbitMQ安装包依赖于Erlang语言包的支持,所以需要先安装Erlang语言包,再安装RabbitMQ安装包。

下表提供了当前支持的RabbitMQ发布系列的Erlang兼容性矩阵。下载Erlang时需要注意版本兼容性问题,请参考官方文档(Erlang Version Requirements | RabbitMQ)。

在RabbitMQ发布的所有版本中,支持CentOS 7.X的最高一个版本是rabbitmq-server-3.10.0-1.el7.noarch。

1.2 ARM架构的CentOS虚拟机中安装Erlang

1.下载ARM架构版本的Erlang安装包。可以通过访问以下两个网址下载ARM架构版的Rrlang安装包,这里以下载otp_src_23.3.4.11.tar.gz版本的安装包为例。

2.将下载的安装包otp_src_23.3.4.11.tar.gz拷贝到CentOS 7的/opt目录下。

# Mac系统使用scp命令将Erlang安装包上传至CentOS系统
scp /Users/yuanxin/Downloads/otp_src_23.3.4.11.tar.gz root@192.168.230.131:/opt

3.安装依赖环境。安装的过程需要消耗一定的时间需耐心等待安装“完毕!”的提示。

[root@localhost opt]# yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz glibc-devel xmlto perl gtk2-devel binutils-devel

4.解压Erlang安装包。

[root@localhost opt]# tar -zxvf otp_src_23.3.4.11.tar.gz

5.配置Erlang安装目录。

# 进入Erlang源码编译目录
[root@localhost opt]# cd otp_src_23.3.4.11
# 创建Erlang安装目录
[root@localhost otp_src_23.3.4.11]#  mkdir /opt/erlang
# 设置安装目录
[root@localhostmake otp_src_23.3.4.11]# ./configure --prefix=/opt/erlang

6.编译、安装Erlang。注意,make命令执行的时间可能比较长,需耐心等待编译完成。

[root@user otp_src_23.3.4.11]# make
[root@user otp_src_23.3.4.11]# make install

7.打开/etc/profile配置文件,将编译安装的Erlang加入环境变量。

[root@user otp_src_23.3.4.11]# vim /etc/profile

8.在/etc/profile文件的末尾添加如下的ERLANG_HOME安装路径。

# ERLANG_HOME
export ERLANG_HOME=/opt/erlang
export PATH=$PATH:$ERLANG_HOME/bin

9.使配置文件生效并使用erl命令查看Erlang的版本信息。

[root@user otp_src_23.3.4.11]# source /etc/profile
[root@user otp_src_23.3.4.11]# erl -version
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 11.2.2.10

1.3 X86架构的CentOS虚拟机中安装Erlang

1.安装Erlang

1.下载erlang-23.3.4.11-1.el7.x86_64.rpm版本的Erlang安装包。Erlang安装包下载地址:rabbitmq/erlang - Packages · packagecloud

2.使用wget命令下载Erlang安装包,这里我们将Erlang安装包下载到/opt目录下。

[root@localhost opt]# wget --content-disposition "https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm?distrio_version_id=140"

3.安装Erlang。

[root@localhost opt]# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm

4.输入"y",回车继续安装,等待安装完成。

Is this ok [y/s/N]: y

5.输入"erl"命令,如果显示版本号说明Erlang安装成功。

erl

2.依赖检测失败问题解决

如果在安装Erlang时提示“错误:依赖检测失败”解决方案见下。如果Erlang安装过程中未提示该问题请忽略此步骤。

1.如果在安装Erlang时报如下错误。

[root@localhost opt]# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
警告:erlang-23.3.4.11-1.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
错误:依赖检测失败:
	libc.so.6(GLIBC_2.10)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.11)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.14)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.15)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.2.5)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.3)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.3.2)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.3.4)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.4)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.7)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libc.so.6(GLIBC_2.8)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libdl.so.2(GLIBC_2.2.5)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libm.so.6(GLIBC_2.2.5)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libpthread.so.0(GLIBC_2.12)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libpthread.so.0(GLIBC_2.2.5)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libpthread.so.0(GLIBC_2.3.2)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	librt.so.1(GLIBC_2.2.5)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要
	libutil.so.1(GLIBC_2.2.5)(64bit) 被 erlang-23.3.4.11-1.el7.x86_64 需要

2.在命令后面添加--nodeps --force参数。该命令的作用是,不再分析包之间的依赖关系而直接安装。

[root@localhost opt]# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm --nodeps --force
警告:erlang-23.3.4.11-1.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
准备中...                          ################################# [100%]
	软件包 erlang-23.3.4.11-1.el7.x86_64 是针对 different 构架的

3.安装依赖环境。安装的过程需要消耗一定的时间需耐心等待安装“完毕!”的提示。

[root@localhost opt]# yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz glibc-devel xmlto perl gtk2-devel binutils-devel

1.4 Windows系统安装Erlang

1.下载Erlang

1.访问Erlang官网(https://www.erlang.org),点击【Get Erlang/OPT 24】按钮,进入到下载页面。

2.在Erlang下载页面选择【Download Windows installer】-【Download 64-bit Installer】选项,下载64位的Erlang安装包。

2.安装Erlang

1.双击otp_win64_24.3.3.exe安装包,进入选择组件窗口,保持选项默认,直接点击【Next】下一步。

2.在选择安装位置窗口,自定义Erlang安装配置。例如,安装在D:\ProgramSoftware\erl-24.3.3目录下。

3.在选择开始菜单文件夹窗口,保持默认,点击【Install】按钮进行安装。

4.等待Erlang的安装完成,整个安装过程可能需要持续三分钟左右。

5.安装完成后,点击【Close】按钮,关闭窗口。至此,Erlang语言包的安装完成。

3.配置Erlang

1.在【高级系统设置】-【环境变量】-【系统变量】选项下,创建ERLANG_HOME变量名,并对此变量名指定Erlang的安装路径作为变量值(注意:在安装Erlang语言包时,会在系统变量下会自动增加一个变量名为ERLANG_HOME的变量配置,它的配置路径是Erlang选择安装的具体路径,无须手动修改。如果此变量已自动生成,无需重复配置)。

2.双击【系统变量】-【Path】选项,在Path变量中添加Erlang安装目录下的bin目录的配置。

%ERLANG_HOME%\bin

4.检测Erlang

1.在开始菜单找到【Erlang】选项,点击启动Erlang;如果显示如下界面,则表示Erlang安装配置成功。

2.或者在【命令提示符】窗口,输入erl命令,查看Erlang版本号;再输入halt().退出erl命令操作。

2.安装Socat

ARM架构的CentOS虚拟机中在安装Erlang时,默认已经安装了Socat,因此无需重复安装Socat。 而X86架构的CentOS虚拟机中在安装Erlang时,默认没有安装Socat,因此需要手动安装Socat。

2.1 Socat简介

Socat是Linux下的一个多功能的网络工具,名字来由是“Socket CAT”。其功能与有瑞士军刀之称的Netcat类似,可以看做是Netcat的加强版。

Socat的主要特点就是在两个数据流之间建立通道,且支持众多协议和链接方式。如IP、TCP、UDP、IPv6、PIPE、EXEC、System、Open、Proxy、Openssl、Socket等。Socat的官方网站:socat

2.2 Socat安装

1.我们可以通过访问以下两个网址下载Socat安装包。这里以下载socat-1.7.3.2-5.el7.lux.x86_64.rpm版本的安装包为例进行讲解。

2.将下载的socat-1.7.3.2-5.el7.lux.x86_64.rpm安装包拷贝到/opt目录。

scp /Users/yuanxin/Downloads/socat-1.7.3.2-5.el7.lux.x86_64.rpm root@192.168.230.131:/opt

3.安装Socat,执行如下命令进行安装。

[root@localhost opt]# rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm

4.安装完成后,查看Socat的版本信息,结果显示如下。

[root@localhost opt]# yum info socat
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.bfsu.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.bfsu.edu.cn
可安装的软件包
名称    :socat
架构    :aarch64
版本    :1.7.3.2
发布    :2.el7
大小    :279 k
源    :base/7/aarch64
简介    : Bidirectional data relay between two data channels ('netcat++')
网址    :http://www.dest-unreach.org/socat
协议    : GPLv2
描述    : Socat is a relay for bidirectional data transfer between two independent data
         : channels. Each of these data channels may be a file, pipe, device (serial line
         : etc. or a pseudo terminal), a socket (UNIX, IP4, IP6 - raw, UDP, TCP), an
         : SSL socket, proxy CONNECT connection, a file descriptor (stdin etc.), the GNU
         : line editor (readline), a program, or a combination of two of these.

3.安装RabbitMQ

3.1 ARM架构的CentOS虚拟机中安装RabbitMQ

1.下载ARM架构版本的RabbitMQ安装包。访问Releases · rabbitmq/rabbitmq-server · GitHub地址,这里我们选择rabbitmq-server-generic-unix-3.10.0.tar.xz版本的RabbitMQ进行下载。

2.拷贝rabbitmq-server-generic-unix-3.10.0.tar.xz安装包到/opt目录。

# 1.Windows系统使用Xftp工具或者lrzsz工具将RabbitMQ安装包上传至CentOS系统

# 2.Mac系统使用scp命令将RabbitMQ安装包上传至CentOS系统
scp /Users/yuanxin/Downloads/rabbitmq-server-generic-unix-3.10.0.tar.xz root@192.168.230.131:/opt

3.解压RabbitMQ安装包。由于下载的安装包为xz文件,先将xz解压为tar,然后再解压缩tar文件。

[root@localhost opt]# xz -d rabbitmq-server-generic-unix-3.10.0.tar.xz
[root@localhost opt]# tar -xvf rabbitmq-server-generic-unix-3.10.0.tar

4.打开/etc/profile配置文件,配置RabbitMQ环境变量。

[root@localhost opt]# vim /etc/profile

5.将RabbitMQ安装路径加入环境变量。

#RABBITMQ_HOME
export RABBITMQ_HOME=/opt/rabbitmq_server-3.10.0
export PATH=$PATH:$RABBITMQ_HOME/sbin

6.使配置文件生效并使用erl命令查看Erlang的版本信息。

[root@localhost opt]# source /etc/profile

7.启动RabbitMQ管理插件。为了更加方便地管理RabbitMQ,需要启动RabbitMQ的管理插件。

[root@localhost opt]# rabbitmq-plugins enable rabbitmq_management

3.2 X86架构的CentOS虚拟机中安装RabbitMQ

1.下载rabbitmq-server-3.10.0-1.el7.noarch.rpm版本的RabbitMQ安装包。RabbitMQ安装包下载地址rabbitmq/rabbitmq-server - Packages · packagecloud

2.使用wget命令下载RabbitMQ安装包,这里我们将RabbitMQ安装包下载到/opt目录下。

[root@localhost opt]# wget --content-disposition "https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.10.0-1.el7.noarch.rpm/download.rpm?distro_version_id=140"

3.安装RabbitMQ。

[root@localhost opt]# rpm -ivh rabbitmq-server-3.10.0-1.el7.noarch.rpm

4.输入"y",回车继续安装,等待安装完成。

Is this ok [y/s/N]: y

5.启动RabbitMQ管理插件。为了更加方便地管理RabbitMQ,需要启动RabbitMQ的管理插件。

[root@localhost opt]# rabbitmq-plugins enable rabbitmq_management

3.3 Windows系统安装RabbitMQ

1.下载RabbitMQ

1.访问RabbitMQ官网(http://rabbitmq.com),点击【Get Started】选项。

2.选择【Download + Installation】选项,进入RabbitMQ下载页面。

3.在该页面中可以选择第一个推荐(recommended)的rabbitmq-sever-3.9.14.exe(3.9.14版本是在编写此教程时最新的稳定版本)进行下载。

4.找到直接下载(Direct Downloads)选项,然后点击rabbitmq-sever-3.9.14.exe进行下载。

2.安装RabbitMQ

1.双击rabbitmq-server-3.9.14.exe安装包,打开选择组件窗口,保持选项默认,直接点击【Next】下一步。

2.在选择安装位置窗口,自定义RabbitMQ安装配置。例如,安装在D:\ProgramSoftware\RabbitMQ Server目录下。然后点击【Install】进行安装。

3.等待RabbitMQ的安装完成,整个安装过程可能需要持续三分钟左右。

4.安装完成后,点击【Next】按钮进入下一步操作。

5.完成RabbitMQ安装后,点击【Finish】按钮,完成操作。

3.配置RabbitMQ

1.在【高级系统设置】-【环境变量】-【系统变量】选项下,创建RABBITQM_SERVER变量名,并对此变量名指定RabbitMQ的安装路径作为变量值。

2.双击【系统变量】-【Path】选项,在Path变量中添加RabbitMQ安装目录下的sbin配置。

%RABBITQM_SERVER%\sbin

4.启动RabbitMQ管理插件

为了更加方便地管理RabbitMQ,需要启动RabbitMQ的管理插件。

1.首先,将目录切换到RabbitMQ中的sbin目录下。

cd D:\ProgramSoftware\RabbitMQ Server\rabbitmq_server-3.9.14\sbin

也可点击开始菜单中的【RabbitMQ Command Prompt (sbin dir)】菜单选项,直接切换到sbin目录下。

2.执行以下命令,启动RabbitMQ管理插件。

rabbitmq-plugins enable rabbitmq_management

3.4 基于Docker安装RabbitMQ

如果你想基于Docker来安装RabbitMQ,使用下面的命令即可。

docker run \
 -e RABBITMQ_DEFAULT_USER=yuanxin \
 -e RABBITMQ_DEFAULT_PASS=123456 \
 -v mq-plugins:/plugins \
 --name rabbitmq \
 --hostname rabbitmq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network yuantingxin \
 -d \
 rabbitmq:3.10.0-management

4.RabbitMQ基本操作

4.1 RabbitMQ常用命令

RabbitMQ服务操作常用的命令见下表。

命令

作用

rabbitmq-server

直接启动,如果关闭窗口或需要在该窗口使用其他命令时应用就会停止

rabbitmq-server -detached

后台启动

rabbitmq-server start

启用服务

rabbitmq-server restart

重启服务

rabbitmqctl status

查看状态

rabbitmqctl stop

停止服务

1.进入到rabbitmq_server-3.10.0/sbin/目录下,然后以后台方式启动RabbitMQ服务。

[root@localhost opt]# cd rabbitmq_server-3.10.0/sbin/
[root@localhost sbin]# ./rabbitmq-server -detached

2.查看RabbitMQ的进程信息。

[root@user opt]# ps -ef | grep rabbitmq
root       700 18314  0 20:38 pts/1    00:00:00 grep --color=auto rabbitmq

4.2 RabbitMQ可视化效果展示

RabbitMQ主要端口号介绍见下表。

端口

描述

5672

RabbitMQ提供给编程语言客户端连接的端口号

15672

RabbitMQ可视化管理端口号

25672

RabbitMQ集群的端口号

1.在RabbitMQ安装的宿主机上通过浏览器访问http://localhost:15672地址,查看RabbitMQ的相关信息。

2.首次登录RabitMQ可视化管理页面时需要进行用户登录,RabbitMQ安装过程中默认提供了用户名和密码均为guest的用户,可以使用该账户进行登录。登录成功后会进入RabbitMQ可视化管理页面的首页。

在RabbitMQ可视化管理页面中,显示出了RabbitMQ的版本、用户信息等信息。管理面板的菜单介绍见下表。

模块

描述

Overview

概览

Connections

查看连接情况

Channels

信道(通道)情况

Exchanges

交换机(路由)情况,默认提供了四类七个交换机

Queues

消息队列情况

Admin

管理员列表

3.直接关闭CentOS 7的防火墙,操作命令见下。

#关闭防火墙 
systemctl stop firewalld
#开机禁用 
systemctl disable firewalld
#查看状态
systemctl status firewalld

4.如果使用其他客户端主机访问RabbitMQ可视化管理页面,例如在主机上访问http://192.168.230.131:15672/地址,将提示“User can only log in via localhost”错误,是因为默认用户只能通过本地主机登录,默认用户不允许远程连接。如下图所示。

RabbitMQ默认提供的guests账号,此账号不能用作远程登录。我们可以创建一个新的账号并授予相应的管理权限来实现远程登录。

4.3 创建RabbitMQ账户

1.创建账户。创建一个名为“admin”且密码是“123456”的用户。

rabbitmqctl add_user admin 123456

2.设置用户角色。添加admin用户为administrator角色(设置为管理员权限)。

rabbitmqctl set_user_tags admin administrator

RabbitMQ用户角色分为四个级别,具体介绍见下表。

用户角色

描述

administrator

管理员,可登录控制台、查看所有信息、可以对RabbitMQ进行管理。

monitoring

监控者,可登录控制台、查看所有信息。

policymaker

策略制定者,可登录控制台、指定策略。

managment

普通管理员,可登录控制台。

3.设置用户权限。设置admin用户的权限,将admin设置为远端登录。

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

4.查看用户权限。

rabbitmqctl list_user_permissions admin

5.查看vhost(/)允许哪些用户访问。

rabbitmqctl list_permissions -p /

6.查看用户列表。

rabbitmqctl list_users

7.修改用户密码。

rabbitmqctl change_password admin 123123

8.在主机上访问http://192.168.230.131:15672/地址,使用所创建的admin账户进行登录。

9.在上述RabbitMQ的登录窗口中点击【Login】登录按钮后,将进入RabbitMQ控制台窗口,表明我们所创建的admin新账号授予远程登录功能成功。

关注我,天天干货不断~

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐