rabbitmq基于haproxy和keepalived构建高可用集群

2024-08-28 09:18

本文主要是介绍rabbitmq基于haproxy和keepalived构建高可用集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.rabbitmq安装参照之前博客
2.haproxy的安装,haproxy的安装主要是看懂配置文件,以下为使用docker-compose方式安装的相关配置文件

#新建haproxy文件加,
mkdir /data/haproxy
#新建docker-compose.yml文件和haproxy.cfg文件

docker-compose.yml

version: "3.9"
services:haproxy:image: haproxy:2.3.4container_name: haproxyrestart: alwaysvolumes:- /data/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfgports:- 8888:8888  # 监控端口- 56720:56720 # rabbitmq端口- 61600:61600 # stomp端口privileged: true

haproxy.cfg

global      #全局设置maxconn         20000   #最大连接数log             127.0.0.1 local0   #日志输出配置,所有日志都记录在本机,通过local0输出daemon   #以后台形式运行haproxy
defaults      #默认设置mode            http   #工作模式,支持TCP、http、healthlog             global   #使用global的日志option          httplog    #启用HTTP请求,会话状态和计时器的日志记录option          dontlognull   #启用空连接不记录日志maxconn         8000   #设置最大套接字连接数timeout client  30s   #设置客户端的最长不活动时间retries         2   #2次连接失败就认为服务器不可用,主要通过后面的check检查option redispatch   #当serverid对应的服务器挂掉后,强制定向到其他健康服务器timeout connect 5s   #设置等待连接尝试到服务器成功的最长时间。timeout server  30s   #设置服务器端的最长不活动时间。timeout queue   30s    #设置队列中等待连接池空闲的最长时间frontend dashboard       #haproxy监控代理bind  *:8888mode  http#URI相对地址stats uri   /dashboard#统计报告格式stats realm     Global\ statistics#登陆帐户信息stats auth  admin:123456frontend rabbitmq       #rabbitmq代理bind *:56720default_backend dynamicstats refresh   5sbackend dynamic      #后台mode httpstats refresh   5sbalance roundrobin   #负载均衡算法(轮循)server master01 192.168.56.105:5672 check port 5672 weight 1 maxconn 2000server slave02 192.168.56.106:5672 check port 5672 weight 1 maxconn 2000server slave01 192.168.56.107:5672 check port 5672 weight 1 maxconn 2000frontend rabbitmq_stomp       #rabbitmq_stomp代理mode tcpoption tcplogbind *:61600default_backend dynamic_stompbackend dynamic_stomp      #后台mode tcpoption tcplogbalance roundrobin   #负载均衡算法(轮循)server master01 192.168.56.105:61613 check port 61613 weight 1 maxconn 5000server slave02 192.168.56.106:61613 check port 61613 weight 1 maxconn 5000server slave01 192.168.56.107:61613 check port 61613 weight 1 maxconn 5000

配置完启动,然后访问haproxy的监控页面
http://192.168.56.107:8888/dashboard
在这里插入图片描述
3.frontend配置方式
haproxy.cfg

global      #全局设置maxconn         20000   #最大连接数log             127.0.0.1 local0   #日志输出配置,所有日志都记录在本机,通过local0输出daemon   #以后台形式运行haproxy
defaults      #默认设置mode            http   #工作模式,支持TCP、http、healthlog             global   #使用global的日志option          httplog    #启用HTTP请求,会话状态和计时器的日志记录option          dontlognull   #启用空连接不记录日志maxconn         8000   #设置最大套接字连接数timeout client  30s   #设置客户端的最长不活动时间retries         2   #2次连接失败就认为服务器不可用,主要通过后面的check检查option redispatch   #当serverid对应的服务器挂掉后,强制定向到其他健康服务器timeout connect 5s   #设置等待连接尝试到服务器成功的最长时间。timeout server  30s   #设置服务器端的最长不活动时间。timeout queue   30s    #设置队列中等待连接池空闲的最长时间listen dashboard       #haproxy监控代理bind  *:8888mode  http#URI相对地址stats uri   /dashboard#统计报告格式stats realm     Global\ statistics#登陆帐户信息stats auth  admin:123456listen rabbitmqbind *:56720mode httpstats refresh   5sbalance roundrobin   #负载均衡算法(轮循)server master01 192.168.56.105:5672 check port 5672 weight 1 maxconn 2000server slave02 192.168.56.106:5672 check port 5672 weight 1 maxconn 2000server slave01 192.168.56.107:5672 check port 5672 weight 1 maxconn 2000listen rabbitmq_stompbind *:61600mode tcpoption tcplogbalance roundrobin   #负载均衡算法(轮循)server master01 192.168.56.105:61613 check port 61613 weight 1 maxconn 5000server slave02 192.168.56.106:61613 check port 61613 weight 1 maxconn 5000server slave01 192.168.56.107:61613 check port 61613 weight 1 maxconn 5000

该方式haproxy监控状态如下
在这里插入图片描述

这篇关于rabbitmq基于haproxy和keepalived构建高可用集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114355

相关文章

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

springBoot (springCloud2025)集成redisCluster 集群的操作方法

《springBoot(springCloud2025)集成redisCluster集群的操作方法》文章介绍了如何使用SpringBoot集成RedisCluster集群,并详细说明了pom.xm... 目录pom.XMLapplication.yamlcluster配置类其他配置类连接池配置类Redis

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片