一、准备三台服务器
二、配置hostname
- 利用以下命令修改三台机器的映射信息
机器一 修改映射:vim /etc/hosts 修改名称:hostnamectl set-hostname node1
机器二:修改映射:vim /etc/hosts 修改名称:hostnamectl set-hostname node2
机器三:修改映射:vim /etc/hosts 修改名称:hostnamectl set-hostname node3
配置信息如下:
192.168.47.136 node1
192.168.47.137 node2
192.168.47.138 node3
#开放三台服务器的端口信息
机器一:添加:firewall-cmd --add-port=15672/tcp --permanent 重启:firewall-cmd --reload
机器二:添加:firewall-cmd --add-port=15672/tcp --permanent 重启:firewall-cmd --reload
机器三:添加:firewall-cmd --add-port=15672/tcp --permanent 重启:firewall-cmd --reload
#三台机器以下命令启动rabbitmq-server
systemctl start rabbitmq-server
- 利用以下命令修改三台机器的RabbitMQ服务远程登录
#添加远程登录用户
rabbitmqctl add_user 用户名 密码
#设置用户角色,分配操作权限
rabbitmqctl set_user_tags 用户名 角色
#为用户添加资源权限(授予访问虚拟机根节点的所有权限)
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
- 出现如下仅仅代表集群基本环境搭建完成
三、复制cookie信息
- 以确保各个节点的 cookie 文件使用的是同一个值
- 在 node1 节点机器上执行远程操作命令
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie
- 完成第一步操作之后需要在 节点一 和 节点二 机器上开放两个端口
#节点一和节点二
添加:firewall-cmd --add-port=4369/tcp --permanent 重启:firewall-cmd --reload
添加:firewall-cmd --add-port=25672/tcp --permanent 重启:firewall-cmd --reload
- 启动 RabbitMQ 服务,顺带启动 Erlang 虚拟机和RabbitMQ应用服务(在三台节点上分别执行以下命令)
rabbitmq-server -detached
- 在节点二机器上执行以下命令:
rabbitmqctl stop_app
#(rabbitmectl stop 会将 Erlang 虚拟机关闭,rabbitmqctl stop_app只会关闭RabbitMQ服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app(只启动应用服务)
- 在节点三机器上执行以下命令:
rabbitmqctl stop_app
#(rabbitmectl stop 会将 Erlang 虚拟机关闭,rabbitmqctl stop_app只会关闭RabbitMQ服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node2
rabbitmqctl start_app(只启动应用服务)
- 随便进入到一个节点查看集群状态命令如下:
rabbitmqctl cluster_status
- 出现如下界面证明各个节点已经构建成集群环境
- 删除集群节点信息
rabbitmqctl forget_cluster_node rabbit@node2
#(节点一机器上执行,删除节点三就在节点三机器上执行)
四、基于Docker集群
未完成…