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)的更多相关文章
- CentOS下RabbitMq高可用集群环境搭建
准备工作 1,准备两台或多台安装有rabbitmq-server服务的服务器 我这里准备了两台,分别如下: 192.168.40.130 rabbitmq01192.168.40.131 rabbit ...
- Linux源码安装RabbitMQ高可用集群
1.环境说明 linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.13 ...
- Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群
Redis总结(五)缓存雪崩和缓存穿透等问题 前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhon ...
- centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课
centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课 heartbeat是Linu ...
- Mysql双主双从高可用集群的搭建且与MyCat进行整合
1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...
- RabbitMQ学习系列(六): RabbitMQ 高可用集群
前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用.不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/ca ...
- ElasticSearch高可用集群环境搭建和分片原理
1.ES是如何实现分布式高并发全文检索 2.简单介绍ES分片Shards分片技术 3.为什么ES主分片对应的备分片不在同一台节点存放 4.索引的主分片定义好后为什么不能做修改 5.ES如何实现高可用容 ...
- SpringCloud之Eureka高可用集群环境搭建
注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式. Eureka集群相当简单:相互注册 ...
- rabbitmq+haproxy+keepalived高可用集群环境搭建
1.先安装centos扩展源: # yum -y install epel-release 2.安装erlang运行环境以及rabbitmq # yum install erlang ... # yu ...
- Kubernetes实战:高可用集群的搭建和部署
摘要:官方只提到了一句"使用负载均衡器将 apiserver 暴露给工作节点",而这恰恰是部署过程中需要解决的重点问题. 本文分享自华为云社区<Kubernetes 高可用集 ...
随机推荐
- 【go笔记】简单的http服务
前言 Go语言通过内置的标准库net/http可以非常方便地实现web服务.不借助任何框架,单凭标准库,50行代码内即可实现简单的web服务. http的ListenAndServe()函数原型: f ...
- Baby_python 反编译
ok,直接pyc直接反编译 逻辑清楚 拿到flag直接搞 结果提交给错了我把前缀改成flag{}这种格式也给错真是摸不着头脑 难道是base64解密错误?? 找了另外一个网站 ???这个是啥?? 与之 ...
- Vue【原创】基于【日历组件Calendar】的【节假日管理】功能整合
基于日历组件(lilo-calendar)的节假日管理功能整合. 效果图: 完整代码: 1 <template> 2 <div class="root-calendar&q ...
- 纯干货!一文get昇腾Ascend C编程入门全部知识点
本文分享自华为云社区<昇腾Ascend C编程入门教程>,作者:昇腾CANN . 2023年5月6日,在昇腾AI开发者峰会上,华为正式发布了面向算子开发场景的昇腾Ascend C编程语言. ...
- tomcat配置域名绑定项目
有时候我们需要根据访问的不同域名,对应tomcat中不同的项目例如:一个网站同时做了两套,pc版和手机版.手机版对应的域名是m.we-going.com,就需要在tomcat配置文件中加入以下代码:& ...
- 「loj - 6179」Pyh 的求和
link. 我们想要求出 \(\varphi(ij)=\varphi(i)\varphi(j)C\) 中的常数.先研究 \(i=p^a\),\(j=p^b\) 的情况,即 \(\varphi(p^{a ...
- Ds100p -「数据结构百题」61~70
61.P5355 [Ynoi2017]由乃的玉米田 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美. 这排玉米一共有 \(N\) 株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出 ...
- nacos2.X版本无法注册的几个原因以及解决方案(踩坑避雷!)
在使用nacos+dubbo 注册服务的时候 遇到了无法注册的问题 记录一下踩的坑以及解决方案 com.alibaba.nacos.api.exception.NacosException: Requ ...
- DevOps|研发效能解决的是企业效率问题
研发效能并不能解决企业效益问题 它不是利润中心,不能给你带来直接收入(研发效能相关工具厂商做咨询.出方案.卖工具除外).想要解决企业效益问题,依赖于企业战略.业务/产品.组织.运营.创新等其他方面. ...
- 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(10) -- 在DataGrid上直接编辑保存数据
有时候,一些数据的录入可能需要使用表格直接录入会显得更加方便快捷,这种情况有时候也是由于客户使用习惯而提出,本篇随笔介绍在WPF应用端上使用DataGrid来直接新增.编辑.保存数据的处理. 录入数据 ...