不同操作系统中如何搭建RabbitMQ开发环境?

大家好,我是袁庭新。今天介绍在不同操作系统中如何搭建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新账号授予远程登录功能成功。

关注我,天天干货不断~

相关推荐
用户8307196840822 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者3 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
初次攀爬者5 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
让我上个超影吧6 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖6 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
断手当码农6 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者6 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
业精于勤_荒于稀6 天前
物流订单系统99.99%可用性全链路容灾体系落地操作手册
分布式
Ronin3056 天前
信道管理模块和异步线程模块
开发语言·c++·rabbitmq·异步线程·信道管理
Asher05096 天前
Hadoop核心技术与实战指南
大数据·hadoop·分布式