在CentOS7上配置RabbitMQ 3.6.3集群与高可用
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,在CentOS7上配置RabbitMQ 3.6.3集群与高可用集群概述 通过 Erlang 的分布式特性(magic cookie 认证节点)进行 RabbitMQ 集群,各 Rabb
千家信息网最后更新 2025年02月02日在CentOS7上配置RabbitMQ 3.6.3集群与高可用
在CentOS7上配置RabbitMQ 3.6.3集群与高可用
集群概述
通过 Erlang 的分布式特性(magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。
这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制。本文中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务。
环境
- CentOS 7,64位
- RabbitMQ 3.6.3
- HAProxy 1.6.0
RabbitMQ 集群安装在 3 个节点上:192.168.1.1、192.168.1.2、192.168.1.3;HAProxy 安装在 192.168.1.4 上,用于对外提供 RabbitMQ 负载均衡服务。
配置步骤
1. 修改 /etc/hosts,并配置ssh相互免密登录
[root@node1 ~]# vi /etc/hosts192.168.1.1 node1192.168.1.2 node2192.168.1.3 node3
2. 安装 erlang、rabbitmq
在 192.168.1.1、192.168.1.2、192.168.1.3 三个节点上安装,然后开启 RabbitMQ 监控插件。[root@node1 ~]# wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm[root@node1 ~]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.3/rabbitmq-server-3.6.3-1.noarch.rpm[root@node1 ~]# rpm -ivh erlang-18.1-1.el7.centos.x86_64.rpm[root@node1 ~]# rpm -ivh rabbitmq-server-3.6.3-1.noarch.rpm[root@node1 ~]# rabbitmq-plugins enable rabbitmq_management
3. 设置 Erlang Cookie
Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。这里将 node1 的该文件复制到 node2、node3,由于这个文件权限是 400,所以需要先修改 node2、node3 中的该文件权限为 777,然后将 node1 中的该文件拷贝到 node2、node3,最后将权限和所属用户/组修改回来。
[root@node1 ~]# chmod 777 /var/lib/rabbitmq/.erlang.cookie[root@node1 ~]# scp -r /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie[root@node1 ~]# scp -r /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie[root@node1 ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie[root@node1 ~]# chown rabbitmq /var/lib/rabbitmq/.erlang.cookie[root@node1 ~]# chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
4. 使用 -detached 参数运行各节点
[root@node1 ~]# rabbitmqctl stop[root@node1 ~]# rabbitmq-server -detached
5. 组成集群
将 node2、node3 与 node1 组成集群[root@node2 ~]# rabbitmqctl stop_app[root@node2 ~]# rabbitmqctl join_cluster rabbit@node1[root@node2 ~]# rabbitmqctl start_app#---------------------------------------------------------------------------------#[root@node3 ~]# rabbitmqctl stop_app[root@node3 ~]# rabbitmqctl join_cluster rabbit@node1[root@node3 ~]# rabbitmqctl start_app
此时 node2 与 node3 也会自动建立连接;如果要使用内存节点,则可以使用下面的命令加入集群。[root@node2 ~]# rabbitmqctl join_cluster *--ram* rabbit@node1
集群配置好后,可以在 RabbitMQ 任意节点上执行下面的命令来查看是否集群配置成功。
rabbitmqctl cluster_status
6. 设置镜像队列策略
在任意一个节点上执行下面的命令[root@node1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。完成这 6 个步骤后,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。
提示: RabbitMQ的配置文件为:/etc/rabbitmq/rabbitmq.config RabbitMQ的环境配置文件为:/etc/rabbitmq/rabbitmq-env.conf
7. 安装并配置 HAProxy
在 192.168.1.4 上安装 HAProxy,然后修改 /etc/haproxy/haproxy.cfg。
[root@snails ~]# haproxy -vv[root@snails ~]# vi /etc/haproxy/haproxy.cfglisten rabbitmq_cluster 0.0.0.0:5672mode tcpbalance roundrobinserver node1 192.168.1.1:5672 check inter 2000 rise 2 fall 3 server node2 192.168.1.2:5672 check inter 2000 rise 2 fall 3server node2 192.168.1.3:5672 check inter 2000 rise 2 fall 3listen private_monitoring :8100 mode http option httplog stats enable #设置haproxy监控地址为http://localhost:8100/rabbitmq-stats stats uri /rabbitmq-stats stats refresh 5s[root@snails ~]# /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid
大功告成,一起验证一下效果吧!!!!!!!!!!1
节点
集群
配置
文件
队列
服务
命令
权限
步骤
镜像
面的
均衡
消息
状态
环境
对外
对等
监控
一致
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ibmc服务器远程管理
5年软件开发经验转行什么好
吴江行业专业软件开发
网络安全评估第三版
网络安全板块龙头股
网络安全第五空间全集
2022网络安全奥运
平谷二手服务器回收电话
局域网如何设置服务器账号密码
中国 新 网络安全法
网络安全知识培训的收获
芒果霸屏视频数据库为空
网站服务器停了之后数据
cnki学问论文数据库
管理软件开发需求文件
浙江营销软件开发活动方案
网络安全问题测试抑郁症
山舟网络技术有限公司现在状况
服务器现场服务收费标准
公安部作为网络安全
嘉定区性能优良网络技术维保
网络安全对外贸企业的重要性
常见的企业网络安全问题
视频会议软件开发业务
即构科技产业互联网开发中心
网络安全标记
网络安全产业发展迎来新机遇
怎么查询我的服务器ip
服务器 购买
百度云的服务器有多大