Linux下RabbitMQ的安装
前言:由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。见:【java开发安装篇】之安装Erlang
废话不多说,直接上图,简单粗暴...
1、rabbitmq下载地址:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.15
下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz

由于我已经有包了,就直接解压了
2、解压
由于是tar.xz格式的所以需要用到xz,没有的话就先安装
yum install -y xz
第一次解压
/bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz

第二次解压
tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
详解:
tar cvf etcbak.tar etc/ 打包一个tar
tar xvf etcbak.tar 解开一个tar
tar cvzf etcbak.tar.gz etc/ 打包压缩一个 tar
tar zxvf etcbak.tar.gz 解压一个tar
移走
mv rabbitmq_server-3.7.15/ /usr/local/
改名
mv /usr/local/rabbitmq_server-3.7.15 rabbitmq
配置环境变量
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
创建配置目录
mkdir /etc/rabbitmq
3、命令
启动命令:rabbitmq-server -detached
停止:rabbitmqctl stop
状态:rabbitmqctl status
重启:systemctl restart rabbitmq-server.service
防火墙之类的请自行处理(5672和15672端口)
进入sbin目录下启动:
rabbitmq-server -detached
启动rabbitmq有以下两种方法。
第一种方法是,直接运行rabbitmq-server命令。
但是这种方式,一旦终端退出后,rabbitmq服务就停止了,所以不推荐这么做。
第二种方法是,运行service rabbitmq-server xxx命令。
service rabbitmq-server start #启动
service rabbitmq-server stop #停止
service rabbitmq-server restart #重启
service rabbitmq-server status #查看状态
service rabbitmq-server etc #查看有哪些命令可以使用
同时将rabbitmq-server加入到开机自启动服务中,运行以下命令:
[root@rabbitmqserver bin]# chkconfig rabbitmq-server on
最佳实践是第二种方法。
4、开启web插件(实现网页登录)
rabbitmq-plugins enable rabbitmq_management

默认账号密码:guest guest(这个账号只允许本机访问)
如果出现User can only log in via localhost
解决:
原因:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(找到/rabbitmq_server-3.6.14/ebin下面的rabbit.app文件)中设置loopback_users为[]。
找到/rabbitmq_server-3.6.14/ebin下面的rabbit.app文件文件完整内容如下(注意后面的半角句号):
找到:loopback_users里的<<”guest”>>删除。
[{rabbit, [{loopback_users, []}]}].
重启:
systemctl restart rabbitmq-server.service
5、用户管理
查看所有用户:rabbitmqctl list_users
添加一个用户:rabbitmqctl add_user gaci rabbitmq123456
配置权限:rabbitmqctl set_permissions -p "/" gaci ".*" ".*" ".*"
查看用户权限:rabbitmqctl list_user_permissions gaci
设置tag:rabbitmqctl set_user_tags gaci administrator // 设置用户角色及权限控制
删除用户(安全起见,删除默认用户):rabbitmqctl delete_user guest
配置好用户之后重启一下rabbit,然后就可以用新账号进行登陆

使用java代码前,创建一个vitrual host
通过 rabbitmqctl add_vhosts命令新建一个virtual host : rabbitmqctl add_vhosts gaci_host
但是到这里是不够的,我们只是声明了一个vhost,我们还要给它分配访问权限。
rabbitmqctl set_permissions -p gaci_host gaci ".*" ".*" ".*"
如此用户名为gaci的用户就可以访问vitrual host为gaci_host的资源了,并且具备配置,读写的权限。
对何种资源具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
其中,<conf> <write> <read>的位置分别用正则表达式来匹配特定的资源,如'^(amq\.gen.*|amq\.default)$'可以匹配server生成的和默认的exchange,'^$'不匹配任何资源
需要注意的是RabbitMQ会缓存每个connection或channel的权限验证结果、因此权限发生变化后需要重连才能生效。
代码见rabbitmq代码压缩文件 路径:/usr/allToolAndCode目录下的rabbitmqcode.zip
结语:以往都是看别人的博客进行学习技术,其中不乏有精华博客也有吊儿郎当的CV大法文章,所以决定将自己所学所用所整理的知识分享给大家,主要还是想为了后浪们少走些弯路,多些正能量的博客,如有错漏,欢迎指正,仅希望大家能在我的博客中学到知识,解决到问题,那么就足够了。谢谢大家!(转载请注明原文出处)