2、RabbitMQ实战之搭建_用户名

前言

  虽然我并不是部署人员,但是自己私人测试环境的各类东东还是得自己安装的。尤其在规模不大的公司,基本安装部署工作都是后端的份内之事。那么最令人痛苦的,莫过于自己就是按照大佬教程走,但是就是过不去。尤其是初学者,解决问题的能力,还不足,往往就直接卡死了。最重要的是,学习阶段,大部分安装都是单机的,可以满足需求了。

  • 官网地址:https://www.rabbitmq.com
  • 下载地址:https://www.rabbitmq.com/download.html

一、windows 安装

1.1 安装配置Erlang

  RabbitMQ 是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。要保证RabbitMQ 和Erlang的版本兼容,否则,安装RabbitMQ 成功后,服务是不能启动的,具体支持的最低最高版本,请参照该地址:https://www.rabbitmq.com/which-erlang.html

  1. 下载Erlong:https://www.erlang.org/downloads
  2. 2、RabbitMQ实战之搭建_用户名_02

  3. 安装Erlang,设置安装路径,一直next即可
  4. 安装完事儿后要记得配置一下系统的环境变量,此电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建”系统环境变量:ERLANG_HOME
  5. 2、RabbitMQ实战之搭建_Erlang_03

  6. 配置path,选择编辑,点击新建,输入%ERLANG_HOME%\bin
  7. 2、RabbitMQ实战之搭建_用户名_04

  8. 最后windows键+R键,输入cmd,再输入erl,看到版本号就说明erlang安装成功了。

1.2 安装配置RabbitMQ

  1. 下载RabbitMQ
    下载地址:https://www.rabbitmq.com/install-windows.html#downloads
  2. 安装;设置路径,一直next即可

C:\Program Files\RabbitMQ Server

  1. 再rabbitmq 的安装路径中找到sbin,双击
  2. 再sbin路径中输入cmd,点击回车
  3. 安装插件
rabbitmq-plugins.bat enable rabbitmq_management

1.3 启动 RabbitMQ

rabbitmq 的安装路径(C:\Program Files\RabbitMQ Server)中找到sbin,启动cmd,输入net start rabbitmq,打开浏览器输入:http://localhost:15672/,默认的用户名和密码:guest

1.4 注意事项:

  • Erlang的版本号与Rabbit MQ的版本号必须保持一致
  • RabbitMQ是基于Erlang开发的,再安装RabbitMQ之前必须先安装配置Erlang
  • C盘user文件夹计算机名字含有中文字符 ,更改计算机名字为英文

15 windows 服务命令

@echo off
rem DevToolscls 
color 0a 
TITLE RabbitMQ 操作工具SET RabbitMQ_PATH=C:
:nginx 路径
SET RabbitMQ_DIR=C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9\sbin:start
CLS ECHO. 
ECHO.    ********************************************************************
ECHO.    *                                                                  *
ECHO.    *                                                                  *
ECHO.    *                     RabbitMQ批处理操作工具                          *
ECHO.    *                                                                  *
ECHO.    *                                                                  *
ECHO.    ********************************************************************
ECHO. 
ECHO.    当前RabbitMQ 位置  %RabbitMQ_DIR%               
ECHO. :MENU ECHO.    ********************************************************************tasklist|findstr /i erl.exeif ERRORLEVEL 1 echo RabbitMQ 未启动
ECHO.    ********************************************************************ECHO. ECHO.  [1] 启动RabbitMQ ECHO.  [2] 关闭RabbitMQ  ECHO.  [3] 重启RabbitMQ ECHO.  [4] 退 出 
ECHO. ECHO.请输入选择项目的序号:
set /p id=
IF !id!@ ==@   (set id="" &GOTO MENU) 
IF "%id%"=="1" (set id="" &GOTO rabbitMQStart)
IF "%id%"=="2" (set id="" &GOTO rabbitMQStop)
IF "%id%"=="3" (set id="" &GOTO rabbitMQRestart)
IF "%id%"=="4" (EXIT) else (set id="" &GOTO MENU)PAUSE>nullrem 启动RabbitMQ
:rabbitMQStartcall net start rabbitmqECHO.============================================================================ECHO. ECHO. GOTO MENUrem 关闭RabbitMQ
:rabbitMQStopcall net stop rabbitmqECHO.============================================================================ECHO. ECHO. GOTO MENUrem 重启RabbitMQ
:rabbitMQRestartcall :rabbitMQStopcall :rabbitMQStartECHO.============================================================================ECHO. ECHO. GOTO MENU

二、Linux Centos 7 安装

2.1 安装Erlang

  1. 因为rabbitMQ是Erlang语言编写的,所以我们首先需要安装Erlang。安装Erlang之前需要进行编译工具安装,通过执行以下命令就可以完成安装:
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
  1. 接下来是安装Erlang
rpm -Uvh https://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm
  1. 查看Erlang 安装是否成功
# 输入命令检验是否安装成功,如下输出表示安装成功
erl -Version
  1. 通过以下步骤就完成了erlang安装,并验证成功。

2.2 安装 RabbitMQ

  1. 先安装依赖
yum install -y socat
  1. 安装 rabbitmq-server
    通过 https://www.rabbitmq.com/install-rpm.html#downloads 获取 rabbitmq-server 的最新版本。
rpm -Uvh https://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.noarch.rpm
  1. 查看rabbitmq-server是否已经安装
rpm -qa|grep rabbitmq

2.3 开启 RabbitMQ

#
whereis rabbitmq# 进入RabbitMQ sbin目录
cd /usr/lib/rabbitmq/sbin

其中sbin目录下文件说明:

文件

说明

rabbitmq-env

环境配置脚本

rabbitmq-defaults

默认参数设置脚本

rabbitmqctl

管理工具脚本

rabbitmq-plugins

插件管理工具脚本

rabbitmq-server

rabbitmq服务脚本

操作服务,启动默认监听端口:5672

# 前台运行,执行(不建议)
service rabbitmq-server start# 在后台启动Rabbit,并验证启动情况 
service rabbitmq-server -detached  & ps aux |grep rabbitmq

在 rabbitmq-server 命令后面添加一个-detached参数是为了能够让RabbitMQ服务以守护进程的方式在后台运行,这样就不会因为当前shell窗口关闭而影响服务。

2.4 操作命令

可以通过systemctl指令对RabbitMQ进行操作,rabbitMQ服务器名:rabbitmq-server,所以可以有如下操作:

# 启动服务
sudo systemctl start rabbitmq-server# 停止服务
sudo systemctl stop rabbitmq-server# 查看状态
sudo systemctl status rabbitmq-server# 自启动设置
sudo systemctl enable rabbitmq-server# 重启服务
sudo rabbitmq-server restart

2.5 查看状态

rabbitmqctl status

2、RabbitMQ实战之搭建_用户名_05


这样虽然我们已经将rabbitmq的服务正常启动了,但是我们在物理机的浏览器中输入ip:15672时,并不能连接,因为我们还没有配置维护插件和开启远程连接

2.6 安装插件

RabbitMQ的一大特色,就是支持诸多插件,其中最广为人知的就是Web管理插件。

# 开启管理页面插件
rabbitmq-plugins enable rabbitmq_management

继续执行

ps -ef |grep rabbitmq

这样就成功启动了平台插件,访问15672端口就能出现

2、RabbitMQ实战之搭建_用户名_06

2.7 开启远程访问

默认情况下,RabbitMQ的默认的guest用户只允许本机访问

  1. 设置配置文件
cd /etc/rabbitmqcp /usr/share/doc/rabbitmq-server-3.5.6/rabbitmq.config.example /etc/rabbitmq/mv rabbitmq.config.example rabbitmq.config

2、RabbitMQ实战之搭建_用户名_07

  1. 重启rabbit-server服务
service rabbitmq-server restart
  1. 登录访问

在浏览器中输入ip:15672即可出现登录页面,用户名和密码都是guest。页面如果无法打开时,需要先查看防火墙是否关闭或者端口号是否咋防火墙中打开。

2、RabbitMQ实战之搭建_用户名_08

端口号

说明

4369

erlang发现口

5672

client端通信口

15672

管理界面ui端口

25672

server间内部通信口

2.8 创建用户并授权

  默认情况下,访问RabbitMQ服务的用户名和密码都是"guest",这个账户有限制,默认只能通过本地网络(如:localhost)访问,远程网络访问受限,所以在实现生产者和消费者之前,需要另外添加一个账户,并设置相应的访问权限。

# 进入RabbitMQ sbin目录
cd /usr/local/bin/# 添加用户
rabbitmqctl add_user {用户名} {密码}# 删除用户 
rabbitmqctl delete_user {用户名}# 修改用户 
rabbitmqctl change_password {用户名} {密码}# 当前用户列表以及用户对应的角色列表等其他信息
rabbitmqctl user_list

继续给用户授权

# rabbitmqctl set_user_tags {用户名} {权限}
# administrator:超级管理员标签
# monitoring:监控者标签
# policymaker:策略制定者标签
# management:普通管理者标签,仅可登陆管理控制台(启用management plugin的情况下)。
# none:无法登录控制台,通常就是普通的生产者和消费者。rabbitmqctl set_user_tags admin administrator# 设置用户权限 
rabbitmqctl set_permissions -p VHostPath {用户名} {配置权限} {写权限} {读权限}# 查询所有权限 
rabbitmqctl list_permissions [-p VHostPath]# 指定用户权限 
rabbitmqctl list_user_permissions {用户名}# 清除用户权限 
rabbitmqctl clear_permissions [-p VHostPath] {用户名}# 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

用户授权完成。

登录

2、RabbitMQ实战之搭建_erlang_09

2、RabbitMQ实战之搭建_erlang_10

成功登录进来了,rabbitMQ和管理平台成功启动。

2、RabbitMQ实战之搭建_erlang_11

  • 超级管理员(administrator)
  • 可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
  • 监控者(monitoring)
  • 可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  • 策略制定者(policymaker)
  • 可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
  • 普通管理者(management)
  • 仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
  • 其他
  • 无法登陆管理控制台,通常就是普通的生产者和消费者。

2.12 防火墙

如果是外网登陆,需要将防火墙关掉

/etc/init.d/iptables stop

centOS7 关闭防火墙

# 关闭防火墙:
systemctl stop firewalld.service# 开启防火墙:
systemctl start firewalld.service# 关闭开机启动:
systemctl disable firewalld.service# 开启开机启动:
systemctl enable firewalld.service

三、Mac 安装

3.1 安装 RabbitMQ

一般来说,在 Mac 环境下安装 RabbitMQ分为两种方式:

  1. 下载 RabbitMQ 源文件,解压源文件之后进行安装。
  2. 通过 brew 命令安装。

在这里,我当然是推荐使用 brew 来安装,非常强大的 Mac 端包管理工具。如果还没安装 brew 的小伙伴,可以先安装 brew。有了 brew 之后,只需要一个简单的命令即可进行rabbitmq服务的自动安装。

brew install rabbitmq
  • RabbitMQ安装后的路径为:/usr/local/Cellar/rabbitmq/ (版本根据安装版本定)
  • RabbitMQ配置文件路径为:/usr/local/etc/rabbitmq/rabbitmq-env.conf

至此安装完成。

3.2 启动 RabbitMQ

安装的路径是 /usr/local/Cellar/rabbitmq/xxx,具体情况要视版本而定

2、RabbitMQ实战之搭建_erlang_12


进入安装目录,执行命令:

# 进入安装目录,注意你的安装版本可能不是3.8.3
cd /usr/local/Cellar/rabbitmq/3.8.9_1
# 启动方式一:
brew services start rabbitmq
# # 启动方式二:当前窗口启动
sbin/rabbitmq-server

启动成功,就是这么简单。启动控制台之前需要先开启插件:

# 进入安装目录,注意你的安装版本可能不是3.8.3
cd /usr/local/Cellar/rabbitmq/3.8.9_1/
# 启用rabbitmq management插件
sudo sbin/rabbitmq-plugins enable rabbitmq_management

3.3 验证

  接下来可以在浏览器打开 http://localhost:15672,可以看到RabbitMQ 的管理页面。默认情况下,访问RabbitMQ服务的用户名和密码都是"guest",这个账户有限制,默认只能通过本地网络(如:localhost)访问,远程网络访问受限。

2、RabbitMQ实战之搭建_用户名_13

3.4 配置远程访问

3.4.1 修改节点ip地址配置

打开RabbitMQ配置文件,将节点ip地址修改为空格

vim /usr/local/etc/rabbitmq/rabbitmq-env.conf

2、RabbitMQ实战之搭建_用户名_14

3.4.2 添加用户

3.4.2.1 命令行
## 进入sbin目录
cd /usr/local/Cellar/rabbitmq/3.8.9_1//sbin## 添加账号
./rabbitmqctl add_user admin admin## 添加访问权限
./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"## 设置超级权限
./rabbitmqctl set_user_tags admin administrator

然后终端中 brew services restart rabbitmq 启动mq。

3.4.2.2 控制后台方式
  1. 浏览器访问 127.0.0.1:15672 访问控制后台,登录(用户名与密码默认均为guest
  2. 2、RabbitMQ实战之搭建_erlang_15

  3. 添加完成后,点击名字跳转设置权限,给最高权限:
  4. 2、RabbitMQ实战之搭建_erlang_16

3.5 REST API

  终于来到重点了,对于程序员来说,看到有现成的API可以调用,那真是太幸福了。自动化监控和一些需要批量的操作,通过调用API来实现是最好的方式。比如有一些需要初始化的用户和权限,就可以通过脚本来一键完成,而不是通过页面逐个添加,简单又快捷。下面是一些常用的 API:

# 概括信息
curl -i -u guest:guest http://localhost:15672/api/overview# vhost 列表
curl -i -u guest:guest http://localhost:15672/api/vhosts# channel 列表
curl -i -u guest:guest http://localhost:15672/api/channels# 节点信息
curl -i -u guest:guest http://localhost:15672/api/nodes# 交换机信息
curl -i -u guest:guest http://localhost:15672/api/exchanges# 队列信息
curl -i -u guest:guest http://localhost:15672/api/queues