rabbitmq集群部署ubuntu20.04.txt 2.2 KB

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