14.haproxy+keepalived负载均衡和高可用

2023-05-16

haproxy+keepalived负载均衡和高可用

概述

在这里插入图片描述

  • 多个rabbitmq服务形成集群,由haproxy来做负载均衡,haproxy会暴露出来一个端口,客户端可以通过haproxy所在的服务器的ip+端口来进行对rabbitmq的使用。
  • 但是如果是一个haproxy的话,当haproxy出现单点故障,那么整个rabbitmq就会出现不可用的场景,所以要对haproxy做主备,主主等操作来实现高可用
  • 通过keepalived实现haproxy的主备关系,当其中一台haproxy出现故障宕机了,另一台haproxy可以继续支持我们服务的运行,从而达到高可用的效果

haproxy负载均衡

  • 准备条件

    • 三台已经集群的rabbitmq服务器
      • 172.16.140.130:5672
      • 172.16.140.131:5672
      • 172.16.140.132:5672
    • 安装haproxy的服务器172.16.140.130:5672
  • 安装haproxy

    yum install -y haproxy
    
  • 创建配置文件

    mkdir -p /usr/local/config/haproxy
    cd /usr/local/config/haproxy
    vim haproxy.cfg
    
  • 添加配置内容

    global
        log         127.0.0.1 local2
    
        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy.pid
        maxconn     4000
        user        haproxy
        group       haproxy
        daemon
    
    defaults
        log global
        mode tcp
        option tcplog
        option dontlognull
        retries 3
        option redispatch
        maxconn 2000
        timeout connect 5s
        timeout client 120s
        timeout server 120s
    
    
    listen rabbitmq_cluster
        bind 0.0.0.0:5671
        mode tcp
        balance roundrobin
            server rabbitmq_node1 172.16.140.130:5672 check inter 5000 rise 2 fall 2
            server rabbitmq_node2 172.16.140.131:5672 check inter 5000 rise 2 fall 2
            server rabbitmq_node3 172.16.140.132:5672 check inter 5000 rise 2 fall 2
    
    
    listen monitor
        bind 0.0.0.0:8100
        mode http
        option httplog
        stats enable
        stats uri /stats
        stats refresh 5s
    
  • 启动haproxy

    haproxy -f /usr/local/config/haproxy/haproxy.cfg
    
  • 在代码中连接rabbitmq需要填写的地址为haproxy所在的地址,端口号为rabbitmq_cluster中配置的地址

  • 可以通过monitor中8100的端口查看当前服务的状态

keepalived高可用

在使用了haproxy之后,我们达成了负载均衡的目的,但是如果只是一个haproxy的话,那么当haproxy宕机,那么整个rabbitmq都会处于不可用状态,所以我们需要使用keepalived来实现主备模式

  • 准备工作

    • 三台已经集群的rabbitmq服务器
      • 172.16.140.130:5672
      • 172.16.140.131:5672
      • 172.16.140.132:5672
    • 两台安装haproxy的服务器
      • 172.16.140.130:5672
      • 172.16.140.131:5672
  • 效果预期:对两台haproxy提供主备的模式

  • 安装keepalived

    yum install -y keepalived
    
  • 安装完成后,在/etc/keepalived/中有文件keepalived.conf文件,将原有的备份,新建一份配置文件。

  • 配置配置文件

    global_defs {                   #全局配置
        router_id lb01              #标识身份->名称
    }
    
    vrrp_instance VI_HAPROXY {
        state MASTER                #标识角色状态
        interface ens160            #网卡绑定接口
        virtual_router_id 51        #虚拟路由id
        priority 150                #优先级
        advert_int 1                #监测间隔时间
        authentication {            #认证
            auth_type PASS          #认证方式
            auth_pass 1111          #认证密码
        }
        virtual_ipaddress {         
            172.16.140.167                #虚拟的VIP地址
        }
    }
    
  • 启动keepalived

    systemctl start keepalived
    systemctl enable keepalived
    
  • 备机上也需要操作上面步骤,不同的是配置文件

    global_defs {
        router_id lb02
    }
    
    vrrp_instance VI_1 {
        state BACKUP        
        interface ens160
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {    
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.16.140.167
        }
    }
    
    • 查看keepalived日志

      tail -f /var/log/messages -n 200
      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

14.haproxy+keepalived负载均衡和高可用 的相关文章

  • 基于 HAProxy + Keepalived 搭建 RabbitMQ 高可用集群

    RabbitMQ 集群 通常情况下 xff0c 在集群中我们把每一个服务称之为一个节点 xff0c 在 RabbitMQ 集群中 xff0c 节点类型可以分为两种 xff1a 内存节点 xff1a 元数据存放于内存中 为了重启后能同步数据
  • 普通用户安装管理Keepalived

    普通用户安装管理Keepalived 介绍安装授权给普通用户修改配置文件keepalived 配置检测脚本配置普通用户启动keepalived 介绍 负载均衡 Load Balance xff0c 简称LB 是一种服务或基于硬件设备等实现的
  • haproxy配置参数详解

    可以先下载本文档附件 xff0c 查看根据手册查看 一 CentOS 6 6 HAProxy安装配置指南 下面来进行配置文件的详细参数介绍 xff0c 更多参数还请查看官方手册 xff0c 下面贴出我的配置文件 xff0c 我的实验环境是一
  • 负载均衡集群HAProxy讲解篇

    负载均衡集群 HAProxy 讲解篇 一 HAProxy组成部分 Haproxy配置中分成五部分内容 xff0c 当然这些组件不是必选的 xff0c 可以根据需要选择作为配置 1 global xff1a 参数是进程级的 xff0c 通常和
  • haproxy使用技术及配置详解

    以下内容来源于网络 xff0c 感谢原作者 性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化 单进程 事件驱动模型显著降低了上下文切换的开销及内存占用 O 1 事件检查器 event checker 允许其在高并发连接中对任
  • K8s 配置高可用提示Configuration file ‘/etc/keepalived/keepalived.conf‘ is not a regular non-executable file

    k8s配置keepalived高可用 xff0c systemctl start keepalived提示 检查keepalived配置文件 xff0c 查询配置也正常 从报错提示显示keepalived conf 配置文件是一个非执行的文
  • keepalived 笔记

    keepalived可以认为是VRRP协议在Linux上的实现 主要有三个模块 分别是core check和vrrp core模块为keepalived的核心 负责主进程的启动 维护以及全局配置文件的加载和解析 check负责健康检查 包括
  • HAProxy--理论--01--简介

    HAProxy 理论 01 简介 1 HAProxy 是一款提供高可用性 负载均衡以及基于TCP 第四层 和HTTP 第七层 应用的代理软件 支持虚拟主机 它是免费的 适用于那些负载特大的web站点 这些站点通常又需要会话保持或七层处理 H
  • HAProxy--理论--03--配置文件中的关键字参考

    HAProxy 理论 03 配置文件中的关键字参考 1 balance balance balance url param check post 可用于 defaults listen 和 backend 定义负载均衡算法 用于在负载均衡场
  • Centos7-安装keepalived

    1 到keepalived官网下载 Keepalived for Linux 2 使用xftp上传到 usr local packages目录下 3 解压上传的tar gz压缩文件 cd usr local packages tar zxv
  • 如何在 Ubuntu 14.04 上使用 HAProxy 作为 WordPress 应用程序服务器的第 4 层负载均衡器

    介绍 在本教程中 我们将教您如何使用 HAProxy 作为 WordPress 服务器 特别是 Web 应用程序层 的第 4 层负载均衡器 负载平衡应用程序服务器为您的设置添加了冗余 从而提高了服务器故障或网络问题时的可靠性 并将负载分散到
  • 如何在 Openshift3 中禁用粘性会话

    如果您在 Openshift3 中扩展 Pod 来自同一客户端 IP 地址的所有请求都会发送到具有关联会话的容器 是否有任何配置可以禁用粘性会话 如何管理 Openshift 中内部 HAProxy 的选项 对于后代 由于我遇到了同样的问题
  • Openshift 上的 WordPress 响应速度非常慢

    我刚刚将我的 Wordpress 网站移至 OpenShift PAAS 生态系统上的可扩展 PHP 盒上 但我立即注意到该网站的响应速度非常慢 大约 3000 4000 毫秒 但是 当它开始响应时 页面加载 渲染速度绝对很快 这是网址 h
  • HAProxy 无法启动,无法绑定 UNIX 套接字 [/run/haproxy/admin.sock]

    我尝试使用 空 配置文件启动 haproxy 版本 1 5 8 2014 10 31 我得到 user server sudo service haproxy start Starting haproxy haproxy ALERT 126
  • 如何使用 HAProxy 发送响应而不将请求传递到 Web 服务器

    服务器正在接收数千条OPTIONS请求由于CORS 跨源资源共享 现在 每个选项请求都被发送到其中一台服务器 这有点浪费 因为知道 HAProxy 可以添加CORS标头本身无需网络服务器的帮助 frontend https in use b
  • 如何使 HA 代理保持活动状态

    在我的环境中 我有 2 个 Web 服务器 Apache 的 haproxy 负载平衡 这是我的 HA 代理配置 global log 127 0 0 1 local2 chroot var lib haproxy pidfile var
  • HAProxy CORS OPTIONS 标头拦截设置

    通过我的 NGinx 设置 我能够拦截来自 ajax 预检的 OPTIONS 请求 并使用正确的 CORS 标头和 200 响应进行响应 以便请求可以继续前进 我正在尝试将我的前端代理整合到 HAProxy 中 但在解决这一难题时遇到了一些
  • 如何使用 haproxy 负载均衡器 Kafka Bootstrap?

    我有一个 kafka 集群 由 3 台在 AWS 上运行的机器组成 卡夫卡1到卡夫卡3 我正在使用新型卡夫卡消费者 gt 0 8 我知道kafka客户端连接到其中一台kafka服务器 获取服务器元数据 然后直接连接到代理 我想确保在代理发生
  • 对 Amazon EC2 上的 Weblogic 10gR3 RMI 服务器的负载平衡请求

    我正在参与开发一个分布式解决方案 基于RMI 并部署在多个Weblogic 10gR3 10 3 0 0 节点上 其中一个节点托管 RMI 服务器 其他节点通过外部 JNDI 提供程序访问它 在尝试通过添加额外的 RMI 服务器来改进我们的
  • HAProxy - 如果第一台机器返回 404,则从第二台机器提供 URL

    我遇到过这样的情况 网站的一部分 某些 URL 路径 由一台后端服务器提供服务 而所有其他 URL 则由 HAProxy 中的不同默认后端提供服务 现在 由于应用程序逻辑的编写方式 可以在两台物理服务器计算机中的任意一台上的同一路径上创建要

随机推荐

  • 网络调试助手UDP广播问题

    用直接广播地址 xff08 192 168 xxx 255 端口 xff09 可以进行广播 xff1b 用受限广播地址 xff08 255 255 255 255 端口 xff09 显示没有指定有效的远程主机端口 xff0c 搞了好久发现是
  • “平衡小车之家”家的STM32F103最小系统源代码分享

    在网上寻找了好久 xff0c 因为他家的开发板自带有mpu6050模块 故想测试其精准度以及z轴漂移程度 发现也有很大的漂移 代码如下 main c部分 xff1a span class token macro property span
  • 使用PMW3901和VL53L1X 实现室内定点悬停

    使用PMW3901和VL53L1X 实现室内定点悬停 使用PMW3901 光流传感器进行水平方向定位Pixhawk连接PMW3901传感器PX4源代码加入PMW3901驱动后重新编译QGroundControl中的配置 使用气压计和VL53
  • 使用 QGroundControl 地面站更新 PixHawk飞控的Bootloader

    安装最新版本的PX4固件 启动QGroundControl并且使用USB连接到Pixhawk飞控 选择 Q icon gt Vehicle Setup gt Firmware sidebar 打开固件设置 安装最新版本的PX4固件 更新Bo
  • 自制DIY 机器狗 完全教程 - MIT猎豹Cheetah

    自制DIY 机器狗 完全教程 MIT猎豹Cheetah 背景结构设计模块化关节电机性能考虑关节结构 四足平台设计腿部设计身体设计脚部设计 硬件设计关节驱动器通信总线板供电系统 控制系统人工智能 背景 3年前 xff0c MIT开源了世界上跑
  • centos安装wxWidgets,erlang,RabbitMq

    centos安装wxWidgets erlang RabbitMq 默认已经安装了java环境 而安装RabbitMq需要安装erlang xff0c 安装erlang又需要安装wxWidgets 安装wxWidgets 更新系统 yum
  • 2.rabbitmq概述和helloworld

    rabbitmq概述 rabbitmq中的几个概念 BROKER 接收和分发消息的应用 xff0c RabbitMQ Server 就是 Message Broker Virtual Host 出于多租户和安全因素设计的 xff0c 把 A
  • 3.rabbitmq轮询和不公平分发

    rabbitmq轮询和不公平分发 rabbitmq轮询分发 rabbitmq默认是使用轮询来分发消息的 测试代码如下所示 生产者代码 span class token comment 生产者 task rabbitmq 轮询演示 span
  • 4.rabbitmq消息应答

    rabbitmq消息应答 概述 消息应答就是消费者在收到消息的时候 xff0c 在它接收到消息并处理完毕之后 xff0c 告诉rabbitmq它已经处理完了 xff0c rabbitmq可以删除这个消息了 消息应答的方式 channel b
  • 5.rabbitmq持久化

    rabbitmq持久化 队列的持久化 队列的持久化需要我们在声明的时候指定其持久化 使用durable 61 true来持久化队列 span class token comment 队列的持久化 span span class token
  • 关于双控阵列的实现原理的讨论

    xfeff xfeff http bbs chinaunix net forum viewthread tid 4140392 html 对于一个支持FC SAN的双控存储阵列 xff0c 对外号称active active xff0c 实
  • 6.rabbitmq中exchange的几种形式

    rabbitmq中exchange的几种形式 RabbitMQ 消息传递模型的核心思想是 生产者生产的消息从不会直接发送到队列 实际上 xff0c 通常生产 者甚至都不知道这些消息传递传递到了哪些队列中 相反 xff0c 生产者只能将消息发
  • 7.rabbitmq死信和死信队列

    rabbitmq死信和死信队列 概述 先从概念解释上搞清楚这个定义 xff0c 死信 xff0c 顾名思义就是无法被消费的消息 xff0c 字面意思可以这样理 解 xff0c 一般来说 xff0c producer 将消息投递到 broke
  • 8.rabbitmq发布确认

    rabbitmq发布确认 生产者将信道设置成 confirm 模式 xff0c 一旦信道进入 confirm 模式 xff0c 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID 从 1 开始 xff0c 一旦消息被投递到所有匹配的队
  • 9.延迟队列

    延迟队列 延迟队列的概念 延时队列 队列内部是有序的 xff0c 最重要的特性就体现在它的延时属性上 xff0c 延时队列中的元素是希望 在指定时间到了以后或之前取出和处理 xff0c 简单来说 xff0c 延时队列就是用来存放需要在指定时
  • 10.回退消息

    rabbitmq回退消息 mandatory参数 在仅开启了生产者确认机制的情况下 xff0c 交换机接收到消息后 xff0c 会直接给消息生产者发送确认消息 xff0c 如果发现该消息不可路由 xff0c 那么消息会被直接丢弃 xff0c
  • 11.备份交换机

    备份交换机 概念 当交换机收到一条不可路由消息时 xff0c 将会把这条消息转发到备份交换机中 xff0c 由备份交换机来进行转发和处理 xff0c 通常备份交换机的类型为fanout xff0c 这样就能把所有消息都投递到与其绑定的队列中
  • 12.优先级队列和惰性队列

    优先级队列 如何添加优先级 选择Maximum priority xff0c 指定优先级的数值 xff0c 设定范围为0 255 xff0c 如果值为10 xff0c 那么就是0 10 xff0c 最大不能超过255 代码形式 span c
  • 13.rabbitmq集群搭建

    rabbitmq集群搭建和镜像队列 集群搭建 准备三台服务器 172 16 140 133 Jan172 16 140 132 Feb172 16 140 133 Mar 修改3台机器的hosts文件 span class token fu
  • 14.haproxy+keepalived负载均衡和高可用

    haproxy 43 keepalived负载均衡和高可用 概述 多个rabbitmq服务形成集群 xff0c 由haproxy来做负载均衡 xff0c haproxy会暴露出来一个端口 xff0c 客户端可以通过haproxy所在的服务器