rabbitmq是一个erlang语言编写的AMQP实现,应用比较广泛。
本文是rabbitmq在Linux上的安装步骤。Linux版本为CentOS7.3。
1 安装erlang运行环境。
rabbitmq是erlang语言实现的,所以需要先安装erlang,erlang采用源码方式安装。因为是源码方式安装,所以系统上必须安装编译器和相关的库。其中openssl-devel是必须安装,否则rabbitmq启动会报错。
#以下命令用root用户执行,均在root主目录下执行
#安装gcc curses-devel openssl-devel
yum install gcc ncurses-devel openssl-devel -y
#下载erlang源码,erlang源码下载地址在erlang官方网站查找
wget http://erlang.org/download/otp_src_20.2.tar.gz
#解压
tar -xvf otp_src_20.2.tar.gz
#配置并安装
cd otp_src_20.2
./configure --prefix=/usr/local/erlang
make install
#配置环境变量,在/etc/profile.d/目录下创建一个文件,erlang.sh,文件内容如下
export ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
#使环境变量生效
. .bash_profile
2 安装rabbitmq
我们选择的版本是当前官方最新版,3.7.3,通用二进制版本。
#下载,并解压
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.3/rabbitmq-server-generic-unix-3.7.3.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.3.tar.xz
#启动rabbitmq,rabbitmq的管理命令在rabbitmq目录的sbin目录下
cd rabbitmq_server-3.7.3/sbin
./rabbitmq-server -detached
3 到这一步我们已经可以使用rabbitmq的各项功能了,但是还有一些工作要做。
3.1 开启rabbitmq管理工具
rabbitmq提供了基于web的管理页面,需要手动开启一下,执行如下命令,启用该功能。
./rabbitmq-plugins enable rabbitmq_management
打开浏览器,访问http://ip:15672,即可看到rabbitmq管理页面
3.2 创建虚拟主机
rabbitmq安装好后,默认有一个虚拟主机,名字为“/”,该虚拟主机只允许localhost访问,不建议使用该虚拟主机。需要创建我们自己的虚拟主机。
执行如下命令可以创建一个叫做vhost_rabbit的虚拟主机
./rabbitmqctl add_vhost vhost_rabbit
3.3 创建用户
#创建用户,用户名rabbit,密码rabbit
./rabbitmqctl add_user rabbit rabbit
3.4 给用户赋予角色
用户角色有如下几种:
- none
- management
- policymaker
- monitoring
- administrator
#给用户赋予角色
./rabbitmqctl set_user_tags rabbit administrator
3.5 给用户赋予权限
用户仅能对其所访问的virtual host中的资源进行操作,这里的资源是指virtual host中的exchage、queue等。操作包括对资源进行配置、写和读。配置权限可以创建、删除资源并修改资源的行为,写权限可以向资源发送消息,读权限可以从资源获取消息。
对何种资源具有配置、写读的权限通过正则表达式来匹配,命令如下
set_permissions [ -p <vhost> ] <user> <conf> <write> <read>
其中<conf> <write> <read>的位置分别用正则表达式来匹配规定的资源。如'^(amp\.gen.*|amp\.default)$'可以匹配server生成的和默认的exchange,'^$'不匹配任何资源。
#给用户赋予操作虚拟主机的权限
./rabbitmqctl set_permissions -p vhost_rabbit rabbit ".*" ".*" ".*"
3.6 管理exchange和queue
management plugin提供了一个命令行行工具rabbitmqadmin,该工具可以完成和web管理页面相同的工作,该工具基于python实现。通过http://{hostname}:15672/cli/rabbitmqadmin可以下载该工具。在UNIX-like操作系统上,把rabbitmqadmin拷贝到path环境变量所在的目录中即可使用该工具。
rabbitmqadmin的基本用法如下:
rabbitmqadmin [options] subcommand
rabbitmqadmin --help 显示全局帮助信息
rabbitmqadmin help subcommand 查询子命令的帮助信息
rabbitmqadmin -V vhost_rabbit list exchanges 查看exchange