首页 > 其他分享 >HAProxy + Keepalived实现mycat高可用方案

HAProxy + Keepalived实现mycat高可用方案

时间:2023-04-17 20:48:57浏览次数:51  
标签:HAProxy haproxy Keepalived keepalived 192.168 mycat usr local

在实际项目中, Mycat 服务也需要考虑高可用性,如果 Mycat 所在服务器出现宕机,或 Mycat 服务故障,需要有备机提供服务,需要考虑 Mycat 集群。

高可用方案

我们可以使用 HAProxy + Keepalived 配合两台 Mycat 搭起 Mycat 集群,实现高可用性。 HAProxy实现了MyCat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过 Keepalived 来实现。
在这里插入图片描述

地址规划

主机名 IP 部署的重要服务
mysql-01 192.168.1.65 MySQL
mysql-02 192.168.1.67 MySQL
mycat-01 192.168.1.61 Mycat
mycat-02 192.168.1.69 Mycat
haproxy-01 192.168.1.68 HAProxy、Keepalived
haproxy-02 192.168.1.63 HAProxy、Keepalived

两台mysql来模仿mysql集群,两台mycat做haproxy高可用,两台haproxy做keepalived高可用

安装部署mycat

部署mycat请参考:部署mycat文章

部署完成mycat在随意客户端测试mycat用户登入
//测试mycat-01主机

[root@mysql-02 ~]# mysql -umycat -p123456 -P8066 -h192.168.1.61

//测试mycat-02主机

[root@mysql-02 ~]# mysql -umycat -p123456 -P8066 -h192.168.1.69

安装配置 HAProxy

1. 安装 HAProxy
准备好HAProxy安装包,解压到/usr/local/

wget https://www.haproxy.org/download/1.9/src/haproxy-1.9.16.tar.gz
tar zxf haproxy-1.9.16.tar.gz -C /usr/local/

查看内核版本, 进行编译

yum -y install gcc gcc-c++  
cd /usr/local/haproxy-1.9.16/
uname -r
make TARGET=linux310 PREFIX=/usr/local/haproxy

# ARGET=linux310,内核版本,使用uname -r查看内核,如: 3.10.0-514.el7,此时该参数就为linux310;

ARCH=x86_64,系统位数;

PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,为haprpxy安装路径

编译完成后,进行安装

make install PREFIX=/usr/local/haproxy

向配置文件中插入以下配置信息,并保存

vim /usr/local/haproxy/haproxy.conf 
global
 log 127.0.0.1 local0
 #log 127.0.0.1 local1 notice
 #log loghost local0 info
 maxconn 4096
 chroot /usr/local/haproxy
 pidfile /usr/local/haproxy/haproxy.pid
 uid 99
 gid 99
 daemon

 #debug
 #quiet
defaults
 log global
 mode tcp
 option abortonclose
 option redispatch
 retries 3
 maxconn 2000
 timeout connect 5000
 timeout client 50000
 timeout server 50000
listen proxy_status
 bind :48066
 mode tcp
 balance roundrobin
 server mycat_1 192.168.1.61:8066 check inter 10s
 server mycat_2 192.168.1.69:8066 check inter 10s
frontend admin_stats
 bind :7777
 mode http
 stats enable
 option httplog
 maxconn 10
 stats refresh 30s
 stats uri /admin
 stats auth admin:123123
 stats hide-version
 stats admin if TRUE 

2.启动验证
启动haproxy

 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf 

查看haproxy进程

 netstat -anput | grep haproxy

打开浏览器访问 http://192.168.1.68:7777/admin 在弹出框输入用户名: admin密码: 123123
在这里插入图片描述验证负载均衡,通过HAProxy访问Mycat

mysql -umycat -p123456 -P48066 -h192.168.1.68

至此,其中一台mycat宕机也不影响mycat的正常访问

第二台haproxy(harproxy-02主机)和第一台配置一样,此处省略

安装配置keepalived

1. 安装 Keepalived

yum -y install openssl-devel popt-devel epel-release.noarch 
yum -y install keepalived.x86_64 

keepalived主的配置文件

[root@haproxy-01 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL01
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

virtual_server 192.168.1.100 48066 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.1.68 48066 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
			}
	}

keepalived从的配置文件

[root@haproxy-02 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL02
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

virtual_server 192.168.1.100 48066 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.1.63 48066 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

启动keepalived

systemctl start keepalived

//查看vip地址
主:

[root@haproxy-01 ~]# ip a show dev ens33;
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:9a:a6:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.68/24 brd 192.168.1.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.1.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::e7ee:bd12:3316:9deb/64 scope link 
       valid_lft forever preferred_lft forever

从:

[root@haproxy-02 ~]# ip a show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:dd:7b:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.63/24 brd 192.168.1.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a836:35bc:b688:93fe/64 scope link 
       valid_lft forever preferred_lft forever

vip在haproxy-01主机上,由于我把防火墙直接关掉了就没有考虑脑裂的现象

mysql -umycat -p123456 -P48066 -h192.168.1.100  #-h指定vip地址

//关闭haproxy-01在进行连接

mysql -umycat -p123456 -P48066 -h192.168.1.100 

标签:HAProxy,haproxy,Keepalived,keepalived,192.168,mycat,usr,local
From: https://www.cnblogs.com/qinziteng/p/17327420.html

相关文章

  • Mycat安全设置
    权限配置1.user标签权限控制目前Mycat对于中间件的连接控制并没有做太复杂的控制,目前只做了中间件逻辑库级别的读写权限控制。是通过server.xml的user标签进行配置。//server.xml文件user部分配置用户密码等信息2.privileges标签权限控制在user标签下的privile......
  • MySQL中间件mycat-01
    @目录mycat基础概念Mycat安装部署mycat基础概念1、什么是MyCat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、NoSQL技术、HDFS大数据的新......
  • MySQL高可用-双主(keepalived)
    生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作。MySQL的高可用方案一般有如下几种:keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC。本节主......
  • keepalived+nginx ansible部署
    Linux9自动化部署Keepalived+Nginx高可用负载均衡器原创 魏文第 魏文第 2023-03-0619:00 发表于北京收录于合集#linux39个#ansible19个#自动化18个 通常使用负载均衡器(LB)为一组realserver(提供服务的服务器) 分配流量,以实现后端服务的高可......
  • 批量给mycat配置文件增加数据库节点
    #!/bin/bash#修改mysqlschemamycat_schema_file=/opt/mycat/conf/schema.xmlcp$mycat_schema_file${mycat_schema_file}.bakdatabase_list='messagexuejie'#找到usercenter的行号,由于schema成对出现有可能换行,在其上一行增加schema更可靠last_schema_row_number=`sed......
  • LVS/Nginx/HAProxy原理及应用场景介绍
    负载均衡已经发展成为网络架构中的基础核心组件,消除了服务器单点故障,可以进行请求流量分流,提升冗余,保证服务器的稳定性。在开源的软件负载均衡中,应用最为广泛的有LVS、Nginx、HAProxy,甚至阿里云的SLB也是基于LVS及Nginx的。本文就来阐述下LVS、Nginx、HAProxy的工作原理及应用场景......
  • 高可用(keepalived)部署方案
    前言:为了减少三维数据中心可视化管理系统的停工时间,保持其服务的高度可用性。同时部署多套同样的三维可视化系统,让三维数据中心可视化系统同时部署并运行到多个服务器上。同时提供一个虚拟IP,然后外面通过这个虚拟IP来访问三维可视化管理系统,当一台实体服务器挂掉时会自动的切到另......
  • 动手使用 HAProxy 负载均衡器
    动手使用HAProxy负载均衡器在这个简短的课程中,培养您使用HAProxy所需的实践知识:最快和最受欢迎的开源负载平衡器之一课程英文名:Hands-OnwithHAProxyLoadBalancer此视频教程共3.65GB,中英双语字幕,画质清晰无水印,源码附件全课程地址:https://xueshu.fun/1459演示地址:htt......
  • MyCat实现读写分离
    1读写分离1.1什么是读写分离?将数据库的查询和其他需要使数据库数据发生变化的操作进行分开的操作。基本的原理:让主数据库处理事务性的插入、修改、删除操作;让从数据库处理查询操作。1.2为什么要做读写分离?在数据库中数据极速增长的情况下,数据库的瓶颈不在于存储,而是计算,即查询。......
  • 基于keepalived双vip的MySQL高可用集群
    一、机器准备及IP地址规划ansible2.9.27ip:192.168.1.124prometheus192.168.1.103MySQLRouter8.0.32mysql集群master192.168.1.150slave192.168.1.151slave192.168.1.152延迟备份backup192.168.1.153keepalived集群192.168.1.148192.168.1.149项目名称:基......