一. 环境准备
本人准备三台虚拟机,如下:
172.16.185.100
172.16.185.110
172.16.185.120
三台机器都修改/etc/hosts 文件
172.16.185.100 master
172.16.185.110 node01
172.16.185.120 node02
练习期间,我这里采用的是关闭防火墙,如下:
firewall-cmd --state#查看防火墙状态
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall开机启动
关闭seliunx
getenforce#查看selinux状态
setenforce 0#临时关闭selinux
sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #永久关闭(需重启系统)
当然也可以不用关闭,可参照如下:
//开启端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
//查询端口号15672或5672是否开启:
firewall-cmd --query-port=15672/tcp
//重启防火墙:
firewall-cmd --reload
//查询有哪些端口是开启的:
firewall-cmd --list-port
//禁用端口
firewall-cmd --zone=public --remove-port=15672/tcp --permanent
二. 开始安装
首先这里说明一下,rabbitmq 是由erlang语言开发的,所以我们这里需要先安装erlang环境。
第一步
所有机器都需要安装如下:
依赖
[root@master ~]# yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
下载
[root@master ~]# wget https://github.com/erlang/otp/releases/download/OTP-25.0.3/otp_src_25.0.3.tar.gz
解压
[root@master ~]# tar -zxvf otp_src_25.0.3.tar.gz
编译
[root@master ~]# ./configure --prefix=/usr/local/erlang
安装
[root@master ~]# make install
添加环境变量
[root@master ~]# echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
环境变量生效
[root@master ~]# source /etc/profile
测试安装结果
[root@master ~]# erl
第二步
所有机器都需要安装如下:
下载
[root@master ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.7/rabbitmq-server-generic-unix-3.10.7.tar.xz
安装xz
[root@master ~]# yum install -y xz
第一次解压
[root@master ~]# /bin/xz -d rabbitmq-server-generic-unix-3.10.7.tar.xz
第二次解压
[root@master ~]# tar -xvf rabbitmq-server-generic-unix-3.10.7.tar
移动
直接将目录更名成 rabbitmq ,然后移到 /usr/local/ 下
[root@master ~]# mv rabbitmq-server-generic-unix-3.10.7 rabbitmq
[root@master ~]# mv rabbitmq /usr/local/
配置环境变量
[root@master ~]# echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
环境变量生效
[root@master ~]# source /etc/profile
三. 操作
启动
[root@master ~]# rabbitmq-server –detached
查看状态
[root@master ~]# rabbitmqctl status
查看状态
[root@master ~]# rabbitmqctl cluster_status
停止
[root@master ~]# rabbitmqctl stop
查看进程
[root@master ~]# ps -ef | grep rabbitmq
开启web插件
[root@master ~]# rabbitmq-plugins enable rabbitmq_management
浏览
IP:15672
默认账号密码:guest guest(这个账号只允许本机访问)
四. 创建账号
查看所有用户
[root@master ~]# rabbitmqctl list_users
添加用户
[root@master ~]# rabbitmqctl add_user admin 123456
配置权限
[root@master ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
查看用户权限
[root@master ~]# rabbitmqctl list_user_permissions admin
设置tag
[root@master ~]# rabbitmqctl set_user_tags admin administrator
删除用户
可不删除,此步骤忽略
[root@master ~]# rabbitmqctl delete_user guest
五. 加入集群
停止服务
[root@master ~]# rabbitmqctl stop
设置erlang cookie
[root@master ~]# find / -name .erlang.cookie
/root/.erlang.cookie
将master上的.erlang.cookie 文件同步导node01 和 node02 这个位置/root/
加入集群
node01 和 node02 加入到 master [rabbit@ 这个是固定格式 后面master 是在/etc/hosts 设置的ip 对应的主机名称] ,因为erlang是通过主机名来连接服务的,必须保证各个主机名之间可以ping通。如果主机名ping不通,rabbitmq服务启动会失败。
[root@node01 ~]# rabbitmqctl stop_app
[root@node01 ~]# rabbitmqctl join_cluster rabbit@master
[root@node01 ~]# rabbitmqctl start_app
[root@node02 ~]# rabbitmqctl stop_app
[root@node02 ~]# rabbitmqctl join_cluster rabbit@master
[root@node02 ~]# rabbitmqctl start_app
下面说明集群安装成功了