`
maosheng
  • 浏览: 566110 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Haproxy+Keepalived+MySQL Cluster实现负载均衡

 
阅读更多
由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,选用keepalived+haproxy来实现。

1.Mysql Cluster安装

参考 CentOS 6.3 安装 mysql-cluster-gpl-7.4.7
https://www.iteye.com/blog/maosheng-2249106

2.haproxy安装(haproxy-1.3.15.10)

参考CentOS 6.3 安装 HAProxy
https://www.iteye.com/blog/maosheng-2256676

haproxy配置文件:

# vi /etc/haproxy/haproxy.conf

global
      maxconn 4096
      pidfile /var/run/haproxy.pid
      daemon
      nbproc 1 
defaults
        log global
        mode http
        retries 3
        option redispatch
        option httplog
        option httpclose
        option  abortonclose
        maxconn 4096
        timeout connect 50000
        timeout client 50000
        timeout server 50000

listen mysql_proxy
        bind 172.16.10.75:3366
        mode tcp
        option tcpka
        option httpchk
        balance roundrobin 
        server mysqldb1 172.16.10.70:3306 weight 1
        server mysqldb1 172.16.10.71:3306 weight 1
listen stats
       bind 172.16.10.75:8888
       mode http
       option httpclose
       option httplog
       stats refresh 5s
       balance roundrobin
       stats uri /
       stats realm Haproxy\ Statistics
       stats auth admin:admin

3.keepalived安装

参考CentOS 6.3 安装 Keepalived
https://www.iteye.com/blog/maosheng-2238747

参考Keepalived+Nginx 实现双机热备
https://www.iteye.com/blog/maosheng-2242594

keepalived配置文件:

Master:

# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived


global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id HAProxy_DEVEL_1
}

vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2
  }

vrrp_instance VI_1 {
    state MASTER  #实例状态,只有MASTER 和 BACKUP两种状态,并且需要全部大写。抢占模式下,其中MASTER为工作状态,BACKUP为备用状态。
    interface eth0  #指定绑定虚拟IP的网络接口
    virtual_router_id 51  #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一个VRRP组
    priority 101  #主节点的优先级(1--255),备节点必须比主节点优先级低
    advert_int 1  #组播信息发送间隔,两个节点设置必须一样
    authentication {  #设置验证信息,两个节点设置必须一样
        auth_type PASS
        auth_pass 1111
    }

track_script {
chk_http_port
}

    virtual_ipaddress {  #指定虚拟IP(VIP),两个节点设置必须一样,虚拟IP地址池,可以有多个IP,每个IP占一行,不需要指定子网掩码。注意:这个IP必须与我们的设定的vip保持一致
        172.16.10.75
    }
}

Backup:

# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived


global_defs {
   notification_email {
     root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id HAProxy_DEVEL_2
}

vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2
  }

vrrp_instance VI_1 {
    state MASTER  #实例状态,只有MASTER 和 BACKUP两种状态,并且需要全部大写。抢占模式下,其中MASTER为工作状态,BACKUP为备用状态。
    interface eth0  #指定绑定虚拟IP的网络接口
    virtual_router_id 51  #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一个VRRP组
    priority 100  #主节点的优先级(1--255),备节点必须比主节点优先级低
    advert_int 1  #组播信息发送间隔,两个节点设置必须一样
    authentication {  #设置验证信息,两个节点设置必须一样
        auth_type PASS
        auth_pass 1111
    }

track_script {
chk_http_port
}

    virtual_ipaddress {  #指定虚拟IP(VIP),两个节点设置必须一样,虚拟IP地址池,可以有多个IP,每个IP占一行,不需要指定子网掩码。注意:这个IP必须与我们的设定的vip保持一致
        172.16.10.75
    }
}

配置侦测haproxy状态脚本:

# vi /etc/keepalived/check_haproxy.sh

#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
  /usr/local/haproxy-1.3.15.10/sbin/haproxy -f /etc/haproxy/haproxy.conf
  sleep 3

  if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
    /etc/init.d/keepalived stop
  fi
fi


4.haproxy检查

http://172.16.10.75:8888/









  • 大小: 53.1 KB
分享到:
评论

相关推荐

    Mariadb集群+haproxy+keepalived +性能测试

    此外,还需要在集群节点上配置Haproxy的配置文件,以便实现负载均衡和故障转移。 Keepalived是另一个重要的组件,它用于管理虚拟IP地址,并监控集群中各个节点的健康状态,以实现高可用性。当主节点发生故障时,...

    atlas+lvs+keepalived mysql多主复制负载均衡搭建

    基于mysql的负载均衡有很多种方式,如haproxy,前面一篇博客有介绍,还可以用更高效lvs做负载均衡,下面是基于percona xtradb cluster的三个节点的多主复制+atlas的lvs负载均衡,其实这里是不需要用atlas的,因为...

    Keepalived+HAProxy实现MySQL高可用负载均衡的配置

    在本文中,我们将探讨如何利用Keepalived和HAProxy这两个工具来实现MySQL数据库的高可用负载均衡,特别是在使用了MySQL Cluster的情况下。 **Keepalived的作用** Keepalived的主要目标是提供故障隔离和负载均衡器...

    MariaDB Galera Cluster

    在部署MariaDB Galera Cluster时,通常会使用负载均衡器如haproxy,以及keepalived来避免单点故障。例如,在一个配置中,可能有两个haproxy实例和三个MariaDB节点,外加一个仲裁节点(garbd)以决定集群状态。SST...

    openstack-HA部署

    在本篇文件中,Haproxy的集群部署主要包括安装Haproxy、编辑/etc/haproxy/haproxy.conf配置文件,设置监听地址、负载均衡策略、健康检查等。 5. Keepalived部署配置:Keepalived是一种用于实现高可用的软件。在本篇...

    mysql分布式集群架构视频

    mysql分布式集群架构视频,包含linux上安装mysql,主从复制、主主复制、负载均衡、haproxy监控、高可用、keepalived、分库分表、数据库中间件-mycat、以及mycat的各种使用,自己学的这个视频,60多集,挺不错的

    Best practices for MySQL High Availability.pdf

    为了提高MySQL复制的可扩展性(Scale-Out),可以通过增加额外的从服务器来实现读负载均衡和增加备份节点。这为大型应用提供了更好的性能和可靠性。 在故障转移(Fail-Over)方面,MySQL复制可以手动或半自动地将...

    MariaDB Galera集群之安装配置HAProxy.pdf

    `option mysql-check`指定使用MySQL健康检查,`balance roundrobin`指定了负载均衡策略为轮询,然后列出了三个MariaDB节点的IP和端口,并设置了权重,权重高的节点会接收更多的请求。 配置完毕后,使用`sudo ...

    数据之大,云动未来——传统企业从IT到DT的互联网创新最佳实践.pdf

    为解决这些问题,文档提出了一种云化的高可用数据平台架构,它结合了数据库代理(DBProxy)、应用数据缓存(如Redis)和负载均衡(HAProxy)等技术,形成了一套集高可用和横向扩展能力于一体的解决方案。这种架构...

    PROJECT.pptx

    PXC (Percona XtraDB Cluster) 是一种基于MySQL的高可用集群解决方案,它通过多节点复制、数据分片和负载均衡等策略来实现数据的高可用性和高性能。 - **高可用性**:PXC集群由多个节点组成,当其中一个节点发生...

    互联网金融数据云平台架构.pptx

    为了解决这些问题,各种高可用方案被采用,如【Pacemaker/Keepalived/MHA/MySQL Cluster】等,但它们配置复杂,可能存在脑裂问题,且在关键时刻不敢切换,可能导致数据不完整。此外,冷备策略浪费了资源,不支持自动...

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    书中会涵盖高可用性(HA)集群、负载均衡器(Load Balancer)的配置,如Keepalived、HAProxy、LVS等,以及分布式文件系统如GlusterFS和Ceph的使用。此外,还会讲解如何实现数据库集群(如MySQL的InnoDB Cluster)和应用...

    3-node-HA-OpenStack-Cluster-Installation:该文件夹包含建立基于 Havana 版本的 3 节点 HA OpenStack 所需的实用程序

    还将安装RabbitMQ、Keepalived、Haproxy和MySQL/Galera等其他组件来支持集群运行。 需要一个单独的 glusterfs 集群来提供 Glance 图像存储库和其他共享服务。 如果要支持跨不同管理程序的 VM 迁移,集群对于 nova ...

Global site tag (gtag.js) - Google Analytics