Linux 安装RabbitMQ 图解教程

1.前提:

由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。
Linux 安装Erlang 图解教程

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的权限验证结果、因此权限发生变化后需要重连才能生效。

6.JAVA API

上传待续…

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页