RabbitMQ高可用集群的搭建部署(Centos7)
2023/12/4 18:32:59
本文主要是介绍RabbitMQ高可用集群的搭建部署(Centos7),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
高可用集群架构
节点域名 | 操作系统 | RabbitMQ版本 | Erlang版本 |
---|---|---|---|
iamdemo.tp-link.com | Centos7.9 | 3.8.28 | 23.3-2 |
iamdemo2.tp-link.com | Centos7.9 | 3.8.28 | 23.3-2 |
iamdemo3.tp-link.com | Centos7.9 | 3.8.28 | 23.3-2 |
目前Centos7.9通过直接RPM包部署安装的版本最高支持到3.8.28,Erlang相应版本支持范围为23.2到24.2,也通过RPM包安装部署
RabbitMQ 3.8.28 RPM包下载地址: https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.28 Erlang 23.3-2 RPM包下载地址: https://github.com/rabbitmq/erlang-rpm/releases/tag/v23.3
本文采用搭建RabbitMQ镜像队列+前端LB负载均衡健康监测+Autoheal自动恢复策略 来实现高可用
部署步骤
配置/etc/hosts
配置集群节点的别名(域名劫持) 172.29.145.157 iamdemo.tp-link.com iamdemo1 172.29.145.182 iamdemo2.tp-link.com iamdemo2 172.29.145.183 iamdemo3.tp-link.com iamdemo3
所有节点 安装RabbitMQ和Erlang
[root@iamdemo1 ~]# rpm -ivh erlang-23.3-2.el7.x86_64.rpm [root@iamdemo1 ~]# rpm -ivh rabbitmq-server-3.8.28-1.el7.noarch.rpm
复制erlang.cookie
文件位置: /var/lib/rabbitmq/.erlang.cookie 通过scp将一节点的erlang.cookie传输到其他集群节点,从而保证节点之间能够通信
安装相关依赖
[root@iamdemo1 ~]# yum -y install socat
编写配置文件Rabbitmq.conf
文件位置: /etc/rabbitmq/rabbitmq.conf listeners.tcp.default = 5672 ##Rabbitmq节点监听端口 management.listener.port = 15672 ##UI管理界面端口 management.listener.ssl = false default_permissions.configure = .* default_permissions.read = .* default_permissions.write = .* cluster_partition_handling = autoheal ##自动恢复策略 log.file = /var/log/rabbitmq/rabbitmq.log ##日志配置路径 log.file.level = info ##日志记录等级 cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config ##集群自动发现 vm_memory_high_watermark.relative = 0.6 ##内存高水位阈值,生产环境推荐设置为0.6(默认0.4)
应用UI界面管理插件
[root@iamdemo1 rabbitmq]# rabbitmq-plugins enable rabbitmq_management
启动Rabbitmq三个节点
[root@iamdemo1 ~]# systemctl start rabbitmq-server.service
二三节点加入集群
注意: 这一步启动完二三节点后需要先使用rabbitmqctl stop_app先关闭rabbitmq服务 systemctl stop rabbitmq-server和rabbitmqctl stop_app的区别就是前者会关闭Erlang服务 [root@iamdemo2 ~]# rabbitmqctl reset ##清除内容再加入集群,已有数据的节点谨慎操作,数据会丢失 [root@iamdemo2 ~]# rabbitmqctl join_cluster rabbit@iamdemo1 ##加入一节点的集群 如果不知道后面这个rabbit@iamdemo1该如何填写,就去一节点上运行rabbitmqctl cluster_status查看 【Disk Nodes】 rabbit@iamdemo1 rabbit@iamdemo2 rabbit@iamdemo3 【Running Nodes】 rabbit@iamdemo1 rabbit@iamdemo2 rabbit@iamdemo3 [root@iamdemo2 rabbitmq]# rabbitmqctl join_cluster rabbit@iamdemo1 Clustering node rabbit@iamdemo2 with rabbit@iamdemo1(成功会像这样显示) 然后再使用Rabbitmqctl start_app启动服务,这时候再查看集群状态就发现三个节点已加入到一个集群了~ [root@iamdemo1 rabbitmq]# rabbitmqctl cluster_status 【Versions】 rabbit@iamdemo1: RabbitMQ 3.8.28 on Erlang 23.3 rabbit@iamdemo2: RabbitMQ 3.8.28 on Erlang 23.3 rabbit@iamdemo3: RabbitMQ 3.8.28 on Erlang 23.3
创建用户并授权
[root@iamdemo1 ~]# rabbitmqctl add_user admin admin ##创建admin用户,现在UI界面不允许初始root用户登录 [root@iamdemo1 ~]# rabbitmqctl set_user_tags admin administrator ##授予admin用户管理员权限 [root@iamdemo1 ~]# rabbitmqctl set_permissions -p / admin "." "." ".*" ##设置访问策略
登录UI管理界面进行管理
your_website.com:15672 就可以使用admin/admin登录了!
这篇关于RabbitMQ高可用集群的搭建部署(Centos7)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)
- 2025-01-03停止思考数据管道,开始构建数据平台:介绍Analytics Engineering Framework
- 2025-01-03如果 Azure-Samples/aks-store-demo 使用了 Score 会怎样?
- 2025-01-03Apache Flink概述:实时数据处理的利器