rabbitmq 镜像集群配置
准备好几台服务器 比如三台 IP分别是 191,192,193
第一步 配置环境和主机名 分别设置三台机器
① 设置主机名
191:命令
vim /ect/hostname
rab191
192:命令
vim /ect/hostname
rab192
193:命令
vim /ect/hostname
rab193
② 设置机器之间可以通讯 三台机器都需设置 设置一样的
命令
vim /ect/hosts
10.0.0.191 rab191
10.0.0.192 rab192
10.0.0.193 rab193
③ 安装运行的的环境
命令
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
这样就设置了好了 环境
第二步 三台机器都需要同样的操作 安装 rabbitmq 以及他的依赖
①下载相关文件
命令
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-.noarch.rpm
② 安装依赖和rabbitmq
命令
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
③ 修改配置文件
命令
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
修改:loopback_users 中的 [<<"guest">>],只保留[guest]
修改:heartbeat 为1 ## 心跳
④ 启动服务和关闭服务 命令
服务启动和停止:
启动 rabbitmq-server start &
停止 rabbitmqctl app_stop
然后重启 service rabbitmq-server restart
⑤ 安装插件 即是 UI 管理端
命令
rabbitmq-plugins enable rabbitmq_management
⑥ 访问 192.168.1.191:15672/ (如果访问不到 请关闭防火墙 百度一下 防火墙 怎么关闭 命令 systemctl stop firewalld.service )
登录账号 guset 密码 guset ,这时候发现是登录失败 ,因为这个guset用户只能是http://localhost:15672 可以登录而已 ,
所以这时候就要配置一个东西了 文件rabbitmq.config 不管这个不存在 直接执行命令就好 ,
命令
vim /etc/rabbitmq/rabbitmq.config
[{rabbit,[{tcp_listeners,[5672]},{loopback_users,["guest"]}]}].
保全退出 要指定 这个用户 guest
然后重启 service rabbitmq-server restart ,再次登录就ok
第三步 加入集群
① 停止所有的机器
命令
rabbitmqctl stop
② 同步 cookie 文件 ,即使复制文件 这时候要选择一个机器为主节点机器 比如是191
进入191机器的文件目录 复制到俩台机器
命令
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
命令
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
③ 然后再所有机器执行集群启动
命令
rabbitmq-server -detached
④ 加入集群中 即是加入到191 里面
首先 在192 操作
命令停止:
rabbitmqctl stop_app
命令加入集群:
rabbitmqctl join_cluster --ram [email protected]
命令启动:
rabbitmqctl start_app
然后在193操作
命令停止:
rabbitmqctl stop_app
命令加入集群:
rabbitmqctl join_cluster --ram [email protected]
命令启动:
rabbitmqctl start_app
最后如果成功了 请在任意一个 界面刷新 http://192.168.1.191:15672/#/ 会看到三个node 就说明成功了
⑤ 查看集群状态 当然也可以设置集群的名称 "aabb"
命令设置名称 :rabbitmqctl set_cluster_name aabb
命令查看状态: rabbitmqctl cluster_status
第四步 设置镜像队列策略 在任意一个机器执行命令就可
命令:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
然后重启 service rabbitmq-server restart ,再次登录就ok
第五步 集群负载均衡已经完成了 .
第六步 总结
学习过程中遇到很多问题 比如UI管理端登录不上 加入集群遇到问题 其实都是环境没有配置好
比如 加入集群 遇到 这个错误
Clustering node [email protected] with [email protected] ...
Error: unable to connect to nodes [[email protected]]: nodedown
DIAGNOSTICS
==========
attempted to contact: [[email protected]]
* unable to connect to epmd (port 4369) on rab191: nxdomain (non-existing domain)
current node details:
- node name: '[email protected]'
- home dir: /var/lib/rabbitmq
- cookie hash: gLLlE/7C/DMNC+5jkkUyQw==
其实这个错误就是机器之间要通讯 即是本的第一步的第二点
还有在局域网 登录guest登录失败 就是第二步的第六点
还有其他错误就是防火墙或者自己端口就好了.
这集群效果图