12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 以两台主机部署集群为例,假设ip分别为:192.168.2.100,192.168.2.200
- 192.168.2.100为主节点
- 1,环境准备
- 修改两台主机 /etc/hosts 文件,添加内容如下:
- 192.168.2.100 node1
- 192.168.2.200 node2
- 其中node1、node2为主机名称。
- 验证修改是否生效: 在node1主机上 ping node2,在node2主机上 ping node1
- 修改两台主机的静态名称:
- 在node1 上执行:sudo hostnamectl set-hostname node1 --static
- 在node2 上执行:sudo hostnamectl set-hostname node2 --static
- 2,在node1上启动rabbitmq,命令:sudo rabbitmq-server
- 将node1上/var/lib/rabbitmq/.erlang.cookie文件拷贝到node2下同路径,
- 保持两台主机.erlang.cookie保持一致。安装ssh来拷贝文件。
- 安装命令:sudo apt install ssh
- 由于.erlang.cookie是rabbitmq创建并且只有读权限,需要先修改文件权限才能拷贝。
- 两台主机都需要执行以下命令:
- sudo chmod 666 /var/lib/rabbitmq/.erlang.cookie
- sudo chown root:root /var/lib/rabbitmq/.erlang.cookie
- sudo chmod 777 /var/lib/rabbitmq
- 然后拷贝,node1上执行:scp /var/lib/rabbitmq/.erlang.cookie [用户名@node2主机名]:/var/lib/rabbitmq/ --注:[用户名@node2主机名]表示完整的主机名,比如zx@node-server3
- 拷贝完需要还原相关权限:
- sudo chmod 755 /var/lib/rabbitmq
- sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
- sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
- 启动node2上的rabbitmq:sudo rabbitmq-server
- 停止node2上的rabbitmq服务:sudo rabbitmqctl stop_app
- 重置node2上的rabbitmq:sudo rabbitmqctl reset
- 将node2加入到node1集群:sudo rabbitmqctl join_cluster rabbit@node1
- 3,在node1上开启镜像队列
- 在node1上执行sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
- 4,开启node2节点服务
- sudo rabbitmqctl start_app
- 备注:
- 命令:sudo rabbitmqctl join_cluster rabbit@node1
- 其中rabbit@node1,rabbit表示rabbitmq服务节点名称。
- 在启动rabbitmq时会读取/etc/rabbitmq/rabbitmq下的配置文件rabbitmq-env.conf,
- NODENAME=rabbit可设置节点名称, 注释后默认名称为rabbit
- 后面node1表示主机名称
|