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
上传待续…