环境准备
准备三台服务器搭建集群环境
node1 | 192.168.177.171 |
node2 | 192.168.177.172 |
node3 | 192.168.177.173 |
其中node1为master节点,node2,node3为slave节点
注意:以下都需要sudo权限,普通用户获取sudo权限操作指令:
教你如何在Ubuntu中创建 Sudo用户_寰宇001的博客-CSDN博客_ubuntu创建sudo用户
普通用户切换root用户快速指令
sudo -s
一:安装erlang(所有节点操作)
1. 安装erlang
sudo apt-get update
sudo apt-get install -y erlang-nox erlang-dev erlang-src
2. 查看erlang状态
erl
返回:(类似于)
Erlang/OTP 22 [erts-10.6.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V10.6.4 (abort with ^G)
二:安装rabbitmq(所有节点操作)
1. 安装rabbitmq
apt-get install rabbitmq-server
2. 新增管理员用户
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
3. 启动web管理台页面
rabbitmq-plugins enable rabbitmq_management
4. 系统别名配置
cat /etc/hosts
按照如下配置:
三:集群搭建
从这开始就是搭建集群的步骤......
1. 复制erlang.cookies(主节点)
将主节点下的erlang.cookies 复制到其他服务器对应目录下
sudo scp /var/lib/rabbitmq/.erlang.cookie node2:/var/lib/rabbitmq/.erlang.cookie
sudo scp /var/lib/rabbitmq/.erlang.cookie node3:/var/lib/rabbitmq/.erlang.cookie
2. 重新启动RabbitMQ服务(子节点)
sudo systemctl restart rabbitmq-server
3. 停止申请(子节点)
sudo rabbitmqctl stop_app
返回:Stopping rabbit application on node rabbit@node2...
4. 重置rabbitmq(子节点)
sudo rabbitmqctl reset
返回:Resetting node rabbit@@node2...
5. 加入群集(子节点)
sudo rabbitmqctl join_cluster rabbit@node1
返回:Clustering node rabbit@mq2 with rabbit@@node2...
注意:这里的node1是主节点的别名,按照/etc/hosts配的来
6. 开始流程申请(子节点)
sudo rabbitmqctl start_app
返回:Starting node rabbit@node2...
completed with 0 plugins.
7. 检查群集状态(子节点)
rabbitmqctl cluster_status
返回:
Basics
Cluster name: rabbit@web-1
Disk Nodes
rabbit@node1
rabbit@node2
Running Nodes
rabbit@node1
rabbit@node2
8. 配置镜像策略(主节点)
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
注:如需删除策略
sudo rabbitmqctl clear_policy <policyname>
9.开放端口
# 打开端口
sudo ufw allow 5672
sudo ufw allow 15672
# 重启防火墙
sudo ufw reload
常用命令:
# 停止服务
sudo rabbitmqctl stop
# 查看服务状态
sudo rabbitmqctl status
# 查看当前所有用户
sudo rabbitmqctl list_users
# 查看默认guest用户的权限
sudo rabbitmqctl list_user_permissions guest
# 删掉默认用户(由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 可以删掉默认用户)
sudo rabbitmqctl delete_user guest
# 添加新用户
sudo rabbitmqctl add_user username password
# 设置用户tag
sudo rabbitmqctl set_user_tags username administrator
# 赋予用户默认vhost的全部操作权限
sudo rabbitmqctl set_permissions -p / username “." ".” “.*”
# 查看用户的权限
sudo rabbitmqctl list_user_permissions username
# 启动
sudo rabbitmq-server start
# 关闭
sudo rabbitmq-server stop
# 重启
sudo rabbitmq-server restart
# 查看状态
sudo rabbitmqctl status
#启动
invoke-rc.d rabbitmq-server start
#暂停
invoke-rc.d rabbitmq-server stop