在实际项目中,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进入解压后的目录,查看内核版本,进行编译

[root@mycat05 software]# cd /usr/local/src/haproxy-1.5.18/

[root@mycat05 haproxy-1.5.18]# uname -r

3.10.0-957.el7.x86_64

[root@mycat05 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向配置文件中插入以下配置信息,并保存

globallog127.0.0.1local0

#log127.0.0.1local1 notice

#log loghost local0 info

maxconn4096chroot/usr/local/haproxy

pidfile/usr/data/haproxy/haproxy.pid

uid99gid99daemon

#debug

#quiet

defaults

logglobalmode tcp

option abortonclose

option redispatch

retries3maxconn2000timeout connect5000timeout client50000timeout server50000listen proxy_status

bind :48066mode tcp

balance roundrobin

server mycat_1192.168.140.128:8066check inter 10s

server mycat_2192.168.140.127:8066check inter 10s

frontend admin_stats

bind :7777mode http

stats enable

option httplog

maxconn10stats refresh 30s

stats uri/admin

stats auth admin:123123 //登陆账户and密码stats hide-version

stats adminif TRUE

2、 启动验证

1启动HAProxy

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

2查看HAProxy进程

ps -ef|grep haproxy

3打开浏览器访问

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

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

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

[root@mycat05 haproxy-1.5.18]# mysql -umycat -p123456 -h 192.168.199.174 -P 48066

3 配置 Keepalived

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 forkeepalived

global_defs {

notification_email {

xlcocoon@foxmail.com

}

notification_email_from keepalived@showjoy.com

smtp_server127.0.0.1smtp_connect_timeout30router_id LVS_DEVEL

vrrp_skip_check_adv_addr

vrrp_garp_interval0vrrp_gna_interval0}

vrrp_instance VI_1 {

#主机配MASTER,备机配BACKUP

state MASTER

#所在机器网卡interfaceens33

virtual_router_id51#数值越大优先级越高

priority100advert_int1authentication {

auth_type PASS

auth_pass1111}

virtual_ipaddress {

#虚拟IP

192.168.199.111} }

virtual_server192.168.199.111 48066{

delay_loop6lb_algo rr

lb_kind NAT

persistence_timeout50protocol TCP

real_server192.168.199.174 48066{ # HA的地址(主机)

weight1rTCP_CHECK {

connect_timeout3retry3delay_before_retry3} }

real_server192.168.199.199 48600{#HA地址(备机r)

weight1TCP_CHECK {

connect_timeout3nb_get_retry3delay_before_retry3}

} }

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 * fromorders;

ERROR2013(HY000): Lost connection to MySQL server during query

mysql> select * fromorders;

ERROR2006(HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:2Current 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)

mycat mysql ha 方案_7、基于 HA 机制的 Mycat 高可用--mycat相关推荐

  1. 基于rhcs套件实现的高可用集群

    1.基于rhcs套件实现nginx平台的高可用集群 实验环境: 1> server1 server5 集群节点为了节省节点我们还用了server1作为管理节点安装了luci图形管理: 2> ...

  2. mysql(三)路由器读写分离、MHA高可用

    1 mysql 路由器实现读写分离 简介: MySQL 路由器是 InnoDB 集群的一部分,是轻量级中间件,可在应用程序和后端 MySQL 服务器之间提供透明路由.它可用于各种用例,例如通过有效地将 ...

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

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

  4. 我的架构梦:(九十九)消息中间件之RocketMQ的高可用机制——消息消费高可用

    欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在前两篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...

  5. 基于故障转移群集的高可用虚拟机解决方案

    基于故障转移群集的高可用虚拟机解决方案 推荐 某医药公司现有1台服务器,安装Windows Server 2008 R2,运行专用管理软件,计算机上有USB加密狗.网络中有100个左右的工作站,安装专 ...

  6. mysql查询每个机构下的账号总数_MySQL高可用方案:实践篇

    今天我们就来搭建一个读写分离,负载均衡的MySQL集群.想了解高可用理论方面内容的童鞋可以阅读理论篇. 奥兹·杰克:MySQL高可用方案:理论篇​zhuanlan.zhihu.com 搭建的集群的基本 ...

  7. 基于共享存储的Harbor高可用-Docker部署方案

    部署规划 架构图 Redis也可以和Harbor集中部署.这样避免了在不使用Reids集群模式下单节点的故障. 使用此模式,目前测试对于Harbor的登录,镜像信息查看,在计算节点,镜像的推送和下载没 ...

  8. HA集群实现原理 切换 JAVA_HA(一)高可用集群原理

    高可用集群原理 LVS集群DR模式简单的架构图如下所示: 在上图的架构中,当Director服务器因软件.硬件.人为原因造成故障时,整个集群服务不可用,因此,需要再添加一台服务器实现Director服 ...

  9. mysql版本不一致会导致uuid_MySQL性能优化和高可用架构建议

    1.主从复制binlog_format要使用row,statement会导致主从数据不一致(基于语句,rand或uuid等函数没法恢复) 2.如果使用binlog恢复数据,标准做法是用mysqlbin ...

最新文章

  1. r语言 编辑 d3.js_d3.js的语言介绍
  2. R语言常用sys函数汇总:sys.chmod、Sys.Date、Sys.time、Sys.getenv、Sys.getlocale、sys.getpid、sys.glob、sys.info等
  3. 【Python之旅】第七篇(二):Redis使用基础
  4. EasyPR--开发详解(8)文字定位
  5. 'keytool' 不是内部或外部命令,也不是可运行的程序
  6. python 判断类是否存在某个属性或方法
  7. php做乘法表,用PHP生成表单和乘法表
  8. 二维haar小波matlab_洪泽湖入湖水沙序列的多时间尺度小波分析
  9. Solaris下设置nfs与nfs挂载
  10. CentOS使用 Crontab定时任务清理程序日志
  11. AO*算法详解,附例子和算法详细步骤
  12. Java Interview Questions (1)
  13. 详细解析十大排序算法(js实现)
  14. 计算机组成原理 学后感,【计算机组成原理实验心得体会】_计算机组成原理实验心得_计算机组成原理实验感想...
  15. css如何使文字抖动,CSS美化:实现抖音彩色文字抖动效果
  16. ❤『面试知识集锦100篇』1.面试技巧篇丨HR的小心思,你真的懂吗?
  17. 侯捷C++->参数传递与返回值
  18. 机器学习梯度下降法应用波士顿房价预测
  19. 我的世界java萌新须知_我的世界新手入门攻略 萌新前期注意事项
  20. 如何从容应对新技术暗潮

热门文章

  1. java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...
  2. flutter 如何判断在哪个页面_Agora 教程:构建你的第一个 Flutter 视频通话应用
  3. 妲己机器人怎么升级固件_台湾重金设计的3D妲己,亮瞎了
  4. html文本域 高度自适应,textarea高度自适应,textarea随着内容高度变化
  5. 怎樣制作线段动画_OPPO又开发布会!这两个PPT动画太炫了,荣获网友清一色好评...
  6. jav简单的个人博客网站代码_每个人都可以拥有的个人博客网站
  7. 十一、Python第十一课——用户输入和另一种循环(While)
  8. springboot2.0 redis EnableCaching的配置和使用
  9. python期末项目书怎么写_自己写了一部书怎么出版
  10. LeetCode-726 原子的数量 递归