首页 > 系统相关 >RabbitMQ高可用集群的搭建部署(Centos7)

RabbitMQ高可用集群的搭建部署(Centos7)

时间:2023-12-04 16:57:57浏览次数:35  
标签:## rabbitmq Centos7 iamdemo1 集群 RabbitMQ rabbit root 节点

高可用集群架构

节点域名 操作系统 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,iamdemo1,集群,RabbitMQ,rabbit,root,节点
From: https://www.cnblogs.com/iamxiaofu/p/17875343.html

相关文章

  • 分布式数据库Apache Doris HA集群部署
    ......
  • RabbitMQ 消费者可靠性——业务幂等性
     如何保证业务是幂等的?方案一: 生产者、消费者都配置上setCreateMessageIds(true)。配好后,生产者给MQ发消息,消息就会带上自动生成的id。将来消费者拿到消息后,就可以获取到id,把id保存起来做唯一匹配 代码示例:packagecom.itheima;importorg.springframework.amqp.r......
  • Centos7 防火墙开放端口,查看状态,查看开放端口
    CentOS7端口的开放关闭查看都是用防火墙来控制的,具体命令如下:查看防火墙状态:(active(running)即是开启状态)systemctlstatusfirewalld[root@WSSbin]#systemctlstatusfirewalld●firewalld.service-firewalld-dynamicfirewalldaemonLoaded:loaded......
  • RabbitMQ避免重复消费
    在Java中,可以使用消息队列来实现消息的异步处理,其中常用的消息队列有RabbitMQ、ActiveMQ、Kafka等。什么是幂等性?幂等性是指无论操作执行多少次,都是得到相同的结果,而不会产生其他副作用。在rabbitMQ中什么是消息重复消费?同一条消息在MQ中被消费多次出现重复消费的原因:生......
  • centos7 docker-ce
    言Docker使用越来越多,安装也很简单,本次记录一下基本的步骤。Docker目前支持CentOS7及以后的版本,内核要求至少为3.10。Docker官网有安装步骤,本文只是记录一下,您也可以参考DockerCEInstallonCentOS环境说明CentOS7(MinimalInstall)$cat/etc/redhat-releaseCentOS......
  • RabbitMQ 消费者可靠性——失败重试机制
     效果:消费者抛异常后,会本地重试,如果本地重试次数达到最大重试次数之后,直接给队列返回reject,队列收到后就会丢弃该消息,也就是策略的第一种但就这样把删了不太好,所以有了失败消息处理策略  第二种ImmediateRequeueMessageRecoverer:消费者抛异常后,会本地重试,如果本地重试......
  • 使用 anasible 搭建一个多 master 多 worker 的 k8s 集群
    kubernetes+istio是目前最强大,也是最易于使用的服务网格方案。要使用kubernetes+istio,首先要搭建kubernets集群。搭建kubernetes集群的方式有很多,其中使用anisble自动化搭建kubernetes集群算是最具合适的方案了。服务器列表:192.168.2.58k8s-lvs-01#lvs主服务器1......
  • centos7.5 hadoop NAT 静态IP网络环境搭建
    1设置VMware网络环境1.选择VMNet8并将子网IP修改为192.168.10.0,保证集群ip都在这个网段下2.选择NAT设置,配置NAT的网关为192.168.10.22设置windows11网络环境1.打开控制面板\网络和Internet\网络连接,选择VMnet8,右键选择属性2.双击Internet协议版......
  • centos7 安装vmware tool 遇到遇到 kernel-headers 问题修复
    安装vmwaretool步骤1.cpVMwareTools-10.3.25-20206839.tar.gz到用户目录下2.tarzxfVMwareTools-10.3.25-20206839.tar.gz解压3.进入vmware-tools-distrib执行sudo./vmware-install.pl执行过程中报错问题1.gcc问题SearchingforGCC...Thepath""isnot......
  • CentOS7 云服务器上安装 Libmicrohttpd 库
    本周web课的课程作业是实现一个类似top命令的网络服务,用于监控远程服务器的进程,其中使用的web服务器是Libmicrohttpd,于是在此记录下我的下载安装流程,如有错误,欢迎指正!1.LibmicrohttpdLibmicrohttpd是一个小型的C语言库,用于嵌入HTTP服务器功能到应用程序中。它支......