7、基于 HA 机制的 Mycat 高可用--mycat

在实际项目中,Mycat 服务也需要考虑高可用性,如果 Mycat 所在服务器出现宕机,或 Mycat 服

务故障,需要有备机提供服务,需要考虑 Mycat 集群。

1、 高可用方案

使用 HAProxy + Keepalived 配合两台 Mycat 搭起 Mycat 集群,实现高可用性。

HAProxy实现了 MyCat 多节点的集群高可用负载均衡

HAProxy 自身的高可用则可以通过 Keepalived 来实现。

角色 ip
mycat01 192.168.199.217
mycat02 192.168.199.120
HA(主) 192.168.199.174
keepalive(主机) 192.168.199.174
HA(主) 192.168.199.199
keepalive(主机 192.168.199.199

先配置好mycat并且启动mycat

2 安装配置 HAProxy

1、 安装 HAProxy

2解压到/usr/local/src

3进入解压后的目录,查看内核版本,进行编译

[[email protected] software]# cd /usr/local/src/haproxy-1.5.18/
[[email protected] haproxy-1.5.18]# uname -r
3.10.0-957.el7.x86_64
[[email protected] haproxy-1.5.18]# make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64

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

#ARCH=x86_64,系统位数;

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

4编译完成后,进行安装

make install PREFIX=/usr/local/haproxy

5安装完成后,创建目录、创建HAProxy配置文件

mkdir -p /usr/data/haproxy/

vim /usr/local/haproxy/haproxy.conf

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

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/data/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.140.128:8066 check inter 10s
 server mycat_2 192.168.140.127: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 //登陆账户and密码
 stats hide-version
 stats admin if TRUE

2、 启动验证

1启动HAProxy

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

2查看HAProxy进程

ps -ef|grep haproxy

3打开浏览器访问

http://192.168.199.174:7777/admin

如果Mycat主备机均已启动,则可以看到如下图

4验证负载均衡,通过HAProxy访问Mycat

在HAProxy主机上执行(192.168.199.174HA的主机地址)

[[email protected] haproxy-1.5.18]# mysql -umycat -p123456 -h 192.168.199.174 -P 48066

3 配置 Keepalived

下载地址:https://www.keepalived.org/software/

1准备好Keepalived安装包,传到/opt目录下

2解压到/usr/local/src

tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src

3安装依赖插件

yum install -y gcc openssl-devel popt-devel

4进入解压后的目录,进行配置,进行编译

cd /usr/local/src/keepalived-1.4.2

./configure --prefix=/usr/local/keepalived

5进行编译,完成后进行安装

make && make install

6运行前配置

cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

7修改配置文件

vim /etc/keepalived/keepalived.conf

#修改内容如下
! Configuration File for keepalived
global_defs {
 notification_email {
 [email protected]
 }
 notification_email_from [email protected]
 smtp_server 127.0.0.1
 smtp_connect_timeout 30
 router_id LVS_DEVEL
 vrrp_skip_check_adv_addr
 vrrp_garp_interval 0
 vrrp_gna_interval 0
}
vrrp_instance VI_1 {
 #主机配MASTER,备机配BACKUP
state MASTER
#所在机器网卡
 interface ens33
virtual_router_id 51
#数值越大优先级越高
 priority 100
 advert_int 1
 authentication {
 auth_type PASS
 auth_pass 1111
 }
virtual_ipaddress {
#虚拟IP
 192.168.199.111
 } }
virtual_server 192.168.199.111 48066 {
 delay_loop 6
 lb_algo rr
 lb_kind NAT
 persistence_timeout 50
 protocol TCP
 real_server 192.168.199.174 48066 { # HA的地址(主机)
 weight 1r
 TCP_CHECK {
 connect_timeout 3
 retry 3
 delay_before_retry 3
 } }
real_server 192.168.199.199 48600 {#HA地址(备机r)
 weight 1
 TCP_CHECK {
 connect_timeout 3
 nb_get_retry 3
 delay_before_retry 3
 }
 } }

8、启动Keepalived

同时启动备机上的HA

service keepalived start

9、登录验证

mysql -umycat -p123456 -h 192.168.199.111 -P 48066

192.168.199.111 :虚拟ip

此时是:

HA隐藏mycat的ip

KeepAlive隐藏HA的ip

4 测试高可用

1关闭mycat

2通过虚拟ip查询数据

mysql -umycat -p123456 -h 192.168.199.111 -P 48066

mysql> select * from orders;
ERROR 2013 (HY000): Lost connection to MySQL server during query

mysql> select * from orders;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: TESTDB

+--------+------------+-------------+-----------+
| id     | order_type | customer_id | amount    |
+--------+------------+-------------+-----------+
|      1 |        101 |         100 | 100100.00 |
|      2 |        101 |         100 | 100300.00 |
|      6 |        102 |         100 | 100020.00 |
|      3 |        101 |         101 | 120000.00 |
|      4 |        101 |         101 | 103000.00 |
|      5 |        102 |         101 | 100400.00 |
| 400100 |        102 |         101 |   1000.00 |
| 400101 |        102 |         101 |   1000.00 |
+--------+------------+-------------+-----------+
8 rows in set (1.46 sec)

原文地址:https://www.cnblogs.com/Mrchengs/p/12307087.html

时间: 2024-11-13 06:39:11

7、基于 HA 机制的 Mycat 高可用--mycat的相关文章

LVS+Keepalived搭建MyCAT高可用负载均衡集群

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及Mast

Mycat高可用解决方案三(读写分离)

Mycat高可用解决方案三(读写分离) 一.系统部署规划 名称 IP 主机名称 配置 Mycat主机01 192.168.199.112 mycat01 2核/2G Mysql主节点 192.168.199.110 mysql01 2核/2G Mysql从节点 192.168.199.111 mysql02 2核/2G 二.软件版本: 进入下载列表地址:http://dl.mycat.io MySQL 版本:mysql-5.7.9下载地址: https://downloads.mysql.com

基于keepalived搭建MySQL的高可用集群

http://www.cnblogs.com/ivictor/p/5522383.html 基于keepalived搭建MySQL的高可用集群 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和PXC. 对于小公司,一般推荐使用keepalived+双主,简单. 下面来部署一下 配置环境: 角色                          

基于keepalived对HAproxy做高可用集群

一.Keepalived简介 Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器. Layer3,4&7工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下: Layer3:Keepalived使用Layer3的方式

keepalived实现mycat高可用问题排查;道路坎坷,布满荆棘,定让你大吃一惊!

前言 开心一刻 医院里,一母亲带着小女孩打针.小女孩:“妈妈我不想打针,疼!”妈妈:“宝贝儿听话,这里这么多护士阿姨,咱们找个打针不疼的.”小女孩:“那哪个阿姨打针不疼呢?”妈妈:“妈妈也不知道,咱们试试看吧.”小女孩高兴的点了点头... 路漫漫其修远兮,吾将上下而求索! github:https://github.com/youzhibing 码云(gitee):https://gitee.com/youzhibing 问题背景 Mycat - 实现数据库的读写分离与高可用写完之后,本以为一两

基于keepalived实现mariadb的高可用

提示: 上一篇博文己经介绍过了keepalived是什么,有那些参数,也介绍过基于corosync+pacemaker实现mairadb高可用,这次我将介绍一下如何利用keepalived对mariadb实现高可用. ----本文大纲 前言 主机环境 配置过程 测试 ----------- 一.前言 说到对mariadb实现高可用,也就是就说,当有任何一个mariadb挂掉之后在还有其它mariadb主机接管业务,完全不会影响到线上的业务,当挂掉的主机修复后重新上线,周而复始的工作,这就要对ma

亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

设计高可用的应用是架构师的一个重要目标,但是基于云计算平台设计高可用应用与基于传统平台的设计有许多不同.云计算在给架构师带来了许多新的设计挑战的时候,也给带来了许多新的设计理念和可用的服务.如何在设计应用的时候充分利用云平台的各种特点是基于云计算设计的一个重要条件.在这个在线讲座中,我们将以亚马逊AWS云平台为例,讨论如何设计一个高可用应用. 我们先会根据AWS服务是否天然高可用.高容错的特点把常见的AWS服务分类.比如AWS把下面服务设计成高可用和高容错的服务: ·     Amazon S3

基于MMM实现MariaDB的高可用

一.MMM 1.简介 MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器),是关于mysql主主复制配置的监控.故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份.节点之间重新同步功能的脚本.MySQL本身没有提供replication failover的解决

基于drbd的mariaDB 的高可用集群

Distributed Replicated Block Device(DRBD)是一个用软件实现的.无共享的.服务器之间镜像块设备内容的存储复制解决方案. 数据镜像:实时.透明.同步(所有服务器都成功后返回).异步(本地服务器成功后返回) DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃. 在DRBD中,资源是特指某复制的存储设备的所有方面.包括资源名称.DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可