在阅读这篇文章之前,你应该是对Rabbitmq有一定了解的
环境搭建
- Ubuntu 16.04 LTS
- Erlang 18.3
- Rabbitmq 3.6.15
准备
我们选择/usr/local作为工作路径
mkdir /usr/local/rabbitmq
cd /usr/local/rabbitmq
更新
apt-get update
安装
安装Erlang
// 添加APT密钥
wget http://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc
apt-key add erlang_solutions.asc
// 不添加证书有可能会出现校验不通过
apt-get update
apt-get install erlang
apt-get install erlang-nox
安装RabbitMQ
添加RabbitMQ仓库源
vim /etc/apt/sources.list
// 在文件最后添加以下行
deb http://www.rabbitmq.com/debian/ testing main
// 添加APT密钥
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
安装RabbitMQ
apt-get update
apt-get install rabbitmq-server
启动
// 启动rabbitmq
service rabbitmq-server start
// 查看状态
service rabbitmq-server status
这里看到 Active:active(running)
就是启动成功了。
当然也有可能会启动失败,如下图
失败的原因可能是多样的,终端提示 Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
可以通过命令 journalctl -xe
查看详情:
这里看到 * unable to connect to epmd (port 4369) on iZbp14r0c*****1guvr6yZ: timeout (timed out)
提示连接不上epmd,我们通过telnet命令发现确实连接不上4369端口但是127.0.0.1可以连通,那么直接改hosts文件就OK了
vi /etc/hosts
127.0.0.1 localhost iZbp14r0c*****1guvr6yZ
然后重启解决问题。
维护
启用rabbitmq-management插件
rabbitmq-plugins enable rabbitmq_management
重启即可
添加新用户
默认情况下为了安全,guest用户只能用过localhost登陆。这时我们可以重新创建一个用户,指派为管理员就可以了。
rabbitmqctl add_user Username Password
rabbitmqctl set_user_tags User Tag
// Tag: administrator,monitoring,policymaker,management,或其他自定义名称
rabbitmq常用命令
chkconfig rabbitmq-server on #添加开机启动(chkconfig一般只有redhat系统有)RabbitMQ服务
service rabbitmq-server start # 启动服务
service rabbitmq-server status # 查看服务状态
service rabbitmq-server stop # 停止服务
rabbitmqctl stop # 停止服务
rabbitmqctl status # 查看服务状态
rabbitmqctl list_users # 查看当前所有用户
rabbitmqctl list_user_permissions guest # 查看默认guest用户的权限
rabbitmqctl delete_user guest# 删掉默认用户(由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 可以删掉默认用户)
rabbitmqctl add_user username password # 添加新用户
rabbitmqctl set_user_tags username administrator# 设置用户tag
rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 赋予用户默认vhost的全部操作权限
rabbitmqctl list_user_permissions username # 查看用户的权限