一、RabbitMQ的介绍
MQ为Message Queue,消息队列是应用和应用程序之间的通信方法。
RabbitMQ是一个开源的,在AMQP基础上完整的,可复用的企业消息系统。
支持主流的操作系统,Linux、Windows、MacOX等。
多种开发语言支持,Java、Python、Ruby、.Net、PHP、C/C++、node.js等
其官网地址:https://www.rabbitmq.com/
linux平台中RabbitMQ下载地址:
https://www.rabbitmq.com/releases/rabbitmq-server
二、RabbitMQ的下载与安装
鉴于RabbitMQ是基于Erlang语言进行编写的,因此在安装RabbitMQ之前需要先安装Erlang环境
安装Erlang
以下为安装Erlang环境的步骤:
第一步:终端中输入下述命令安装 GCC GCC-C++ 模块
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
第二步:终端中输入下述命令安装 ncurses
yum -y install ncurses-devel
第三步:进入到erlang的下载页面,其官网下载地址为:http://erlang.org/download/
在此我下载的是opt_src_21.0.tar.gz文件,将此文件上传到终端的/home目录下
然后对其进行解压:tar -zxvf opt_src_21.0.tar.gz
进入其解压目录/home/opt_src_21.0 下,然后在终端中输入./configure 命令来编译erlang,如下图所示:
然后再在终端在终端中输入make insatll 命令来安装erlang
最后使用erl -version命令来校验erlang环境是否已经安装成功,如果出现下述信息则表示已经安装成功。
安装RabbitMQ
第一步:进入到RabbitMQ的官网(https://www.rabbitmq.com/releases/rabbitmq-server/)下载linux版本的安装软件,即rabbitmq-server-generic-unix-3.6.9.tar.xz
第二步:将上述文件上传到终端的/home目录下面,然后对该文件进行解压
第三步:配置好RabbitMQ的环境变量到系统环境中,如下图所示:
使用vim /etc/profile 命令进入到配置文件中,如上图所示。我这里之前配置过JDK的环境变量,这里我们先使用export RABBITMQ_HOME=/home/rabbitmq_server-3.7.17/sbin
命令定义RabbitMQ的路径,然后再在PATH引用配置的最后面加上:$RABBITMQ_HOME 来将
RabbitMQ配置到环境变量中,需要注意的是在PATH环境变量中引入多个服务应用路径时是用冒号“:”进行分隔开,不是使用分号。
配置好了RabbitMQ的环境变量后,还需要使用命令source /etc/profile 来使环境变量生效
注意:做完了RabbitMQ服务应用的测试,为了不对其它服务又影响,建议将其配置从系统环境变量删除掉,目前任处于一种学习状态!!!
上图中红框圈中的两部分就是我们新增的配置内容,如果不需要RabbitMQ应用服务将这两次删除就可以
第四步:在/home/rabbitmq_server-3.6.9/sbin路径下执行rabbitmq-server start命令来启动RabbitMQ,但是启动失败出现以下两处错误
归其原因为:Erlang的版本(21.0)与RabbitMQ的版本(3.6.9)不匹配
RbbitMQ与Erlang的版本匹配参考网址:https://www.rabbitmq.com/which-erlang.html
最终确定Erlang版本不变为21.0,RabbitMQ的版本要修改为3.7.17,重新上传并解压RabbitMQ
即选择下述版本:
第五步:在/home/rabbitmq_server-3.7.17/sbin 目录下使用命令
rabbitmq-plugins enable rabbitmq_management 使RabbitMQ服务应用可以启用后台管理
第六步:使用rabbitmq-server -detached 命令来后台运行rabbitmq,该服务应用默认的端口号为15672
第七步:浏览器中访问http://172.81.243.6:15672/,如果页面出现如下效果,则说明我们的应用服务已经安装完成。
如果RabbitMQ说在本地进行安装的,然后我们访问http://localhost:15672就可以使用以下账号和密码进行登录,如果不是本地访问则需要添加相关用户信息
本地应用初始账号:guest
本地应用初始密码:guest
三、RabbitMQ的操作相关命令与使用
1.列出插件的启用和禁用状态
命令:rabbitmq-plugins list
注意的是该命令是在/home/rabbitmq_server-3.7.17/sbin 目录下执行的,后续的相关命令也是在此路径下面执行的
2.RabbitMQ启用和禁用web界面管理插件
rabbitmq默认安装启动以后,是没有开启web管理界面的,可先通过rabbitmq-plugins list命令来查看是否安装了web管理界面。如果没有,则需要使用如下
命令:rabbitmq-plugins enable rabbitmq_management 来开启web界面管理插件,这样我们才能在浏览器中访问得到RabbitMQ管理界面
禁用web界面管理插件:
rabbitmq-plugins disable rabbitmq_management
3.查看RabbitMQ的版本
rabbitmqctl status | grep rabbit
即RabbitMQ的版本为3.7.17
4.启动服务
普通启动命令:rabbitmq-server start
以这种方式启动,一旦离开了终端,我们的应用服务就会挂掉,因此仅需了解即可,不推荐使用。
后台运行服务启动命令(推荐方式):rabbitmq-server -detached
5.停止服务
第一种方式(推荐方式):rabbitmqctl stop
第二种方式:
先查出进程号:ps -ef|grep rabbitmq_server-3.7.17
再使用kill -9 PID杀死进程来停止该服务
6.重启服务
命令:rabbitmq-server restart
总结:这个命令仅仅适合我们做测试使用,一旦脱离了终端重启后的应用就挂了
7.检查RabbitMQ运行状态
命令:rabbitmqctl status
当RabbitMQ应用服务正常启动后,查看状态时就会出现以下内容
8.列出角色
命令:rabbitmqctl list_users
9.添加用户和权限
默认网页guest用户是不允许远程访问的,因此需要新增用户、角色和权限,操作如下:
新建账号:rabbitmqctl add_user 用户名 密码
设置用户角色:rabbitmqctl set_user_tags 用户名 administrator
设置用户权限:rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"
然后就可以远程访问了
此时再查看用户列表,就可以看到我们刚刚创建的用户
10.删除角色
命令:rabbitmqctl delete_user 用户名
11.其它命令
查看所有的队列:rabbitmqctl list_queues
清除所有的队列:rabbitmqctl reset