搭建 rabbitmq 3.9 集群篇
搭建 rabbitmq 3.9 集群篇
-
参照https://www.cnblogs.com/thomas-fan/p/15915203.html文章,搭建单体应用
本文 host 如 下图
-
同步 cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node-1:/var/lib/rabbitmq/ scp /var/lib/rabbitmq/.erlang.cookie root@node-2:/var/lib/rabbitmq/
-
重启各节点
reboot
-
如按上篇文章配置好自启动可忽略此步骤
systemctl start rabbitmq-server
-
分别停止三台节点并分离
rabbitmqctl stop rabbitmq-server -detached
-
子节点加入集群
rabbitmqctl stop_app rabbitmqctl join_cluster rabbit@master-node rabbitmqctl start_app
-
创建集群用户
# 添加 root 账号,密码 root rabbitmqctl add_user root root # 设置为管理员角色 rabbitmqctl set_user_tags root administrator # 设置路径权限 rabbitmqctl set_permissions -p "/" root ".*" ".*" ".*"
-
登录网页端集群正常
-
主节点设置所有队列镜像模式
rabbitmqctl set_policy xall "^" '{"ha-mode":"all"}'
-
集成 ha-proxy
# 下载 wget http://www.haproxy.org/download/2.5/src/haproxy-2.5.3.tar.gz tar -zxvf haproxy-2.5.3.tar.gz # 编译安装 cd haproxy-2.5.3 make TARGET=linux-glibc PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy # 添加用户 useradd -r haproxy # 创建配置文件 mkdir -p /etc/haproxy vim /etc/haproxy/haproxy.cfg # 拷贝初始化脚本至 init.d cp examples/haproxy.init /etc/init.d/haproxy # 修改执行脚本地址 vim haproxy BIN=/usr/local/haproxy/sbin/$BASENAME # 保存 # 添加执行权限 chmod 755 /etc/init.d/haproxy # 开机自启 chkconfig haproxy on
# 全局配置 global # 日志 log 127.0.0.1 local0 info # 工作目录 chroot /usr/local/haproxy # 用户,用户组设置 user haproxy group haproxy # 运行进程 ID uid 99 gid 99 # 守护进程启动 daemon # 最大连接数 maxconn 4096 # 默认配置 defaults # 应用全局的日志配置 log global # 默认的模式mode {tcp|http|health},TCP是4层,HTTP是7层,health只返回OK mode tcp # 日志类别 tcplog option tcplog # 不记录健康日志信息 option dontlognull # 3 次重试 retries 3 # 每个进程可用的最大连接数 maxconn 2000 # 链接超时 timeout connect 5s # 客户端超时 30s,ha 重新链接 timeout client 30s # 服务端超时 15s,ha 重新链接 timeout server 15s # 绑定配置 listen rabbitmq_cluster # 监听本机 5672 bind 192.168.31.200:5672 # 配置 TCP模式 mode tcp # 负载均衡使用轮询 balance roundrobin # RabbitMQ集群节点配置,每隔5秒对mq集群做检查,2次正确证明服务可用,3次失败证明服务不可用 server master-node 192.168.31.201:5672 check inter 5000 rise 2 fall 3 server node-1 192.168.31.202:5672 check inter 5000 rise 2 fall 3 server node-2 192.168.31.203:5672 check inter 5000 rise 2 fall 3 # haproxy 监控页面地址 listen monitor bind 192.168.31.200:8100 mode http option httplog stats enable # 监控页面地址 http://192.168.31.200:8100/monitor stats uri /monitor stats refresh 5s