一 简介:建立读写分离模式

二 keepalived相关配置

vrrp_instance VI_1 {
  state MASTER  // 可修改
  interface eth0
  virtual_router_id //两边必须一样
  priority 100     //主比从高
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 123456
  }
  virtual_ipaddress {
  VIP/24
  }
  }

virtual_server VIP 3306 {
 delay_loop 10
 lb_kind DR
 nat_mask 255.255.255.0
 protocol TCP

real_server REL-IP 3306 {
 weight 1
 TCP_CHECK {
 connect_port 3306
 connect_timeout 10
 nb_get_retry 3
 delay_before_retry 5
 } 
 MISC_CHECK {
 misc_path "/etc/keepalived/check_mysql.sh"//检测脚本
 misc_dynamic
 }
 }

三 mysql监控脚本

实现功能 1 检测mysql down+slave stop

#!/bin/sh

function sql_sqlthread()
  {
  STATUS=`/usr/local/mysql/bin/mysql -S /tmp/mysql.sock -uroot -ppassword -e "show slave status\G"| grep Running`
  IO_env=`echo $STATUS | grep IO | awk -F " " '{print $2}'`
  SQL_env=`echo $STATUS | grep IO | awk -F " " '{print $4}'`
  if [ "$IO_env" == "No" ] || [ "$SQL_env" == "No" ];then
  /etc/init.d/keepalived stop
  exit 1;
  else
  echo "nihao";
  fi
  }
  function mysql_test()
  {
  STATUS=`/usr/local/mysql/bin/mysqladmin -ppassword -S /tmp/mysql.sock ping | awk '{print $3}'`
  if [ "$STATUS" == "alive" ];then
  echo "nihao"
  sql_sqlthread
  else
  /etc/init.d/keepalived stop
  exit 1;
  fi

}
 mysql_test

四 进行测试

五 总结

架构优势

1 节省机器,直接在从库进行高可用读,当MHA进行切换到新主后或者复制进程发生错误时,进行切换

2 采用中间层lvs+keepalived 后端负载mysql从库虽然可以实现负载均衡,但是有一个问题,DR模式需要同一网段,如果数据库机器都在不同网段,那么所需要的lvs专门机器会越来越多

3 采用中间件问题会有2个问题 1 性能损耗 2中间件稳定性

架构缺点

1 只能单台从库读,不能实现负载均衡 原因有几点 1 另一台从库为研发服务和做一些备份工作 2 当MHA切换时 不能把读的压力给新主

2 在从库都发生周期性延迟后不能将读转向主库,但是很遗憾,这种的工作基本只能靠中间件这样的完成,所以我们的读写分离业务目标是可以忍受延迟的业务

keepalived高可用系列~keepalived+mysql的更多相关文章

  1. keepalived高可用系列~ keepalived+proxysql

    一 简介:介绍下高可用通用的方案 二 目的:一个中间件提供服务,故障后,另一个中间件提供服务 三 手段: 应用keepalived的vrrp_scripts服务 四 具体配置 global_defs ...

  2. keepalived高可用系列~通用基础

    简介:今天咱们来聊聊keepalived一 keepalived 架构 1  标准架构: keepalived+lvs/haproxy+后端 real server(mysql从库,nginx.myc ...

  3. MySQL的keepalived高可用监控脚本

    MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占maste ...

  4. 22.LVS+Keepalived 高可用群集

    LVS+Keepalived 高可用群集 目录 LVS+Keepalived 高可用群集 keepalived工具介绍 Keepalived实现原理剖析 VRRP(虚拟路由冗余协议) VRRP 相关术 ...

  5. mysql主主、mysql-proxy读写分离、keepalived高可用完美组合

    配置mysql主主复制 服务器A:172.16.100.9 服务器B:172.16.100.10 首先在服务器A和服务器B上各安装好单机版mysql5.7,安装好后,再继续下面的操作. 在服务器A和服 ...

  6. Oracle Compute云快速搭建MySQL Keepalived高可用架构

    最近有个客户在测试Oracle Compute云,他们的应用需要使用MySQL数据库,由于是企业级应用一定要考虑高可用架构,因此有需求要在Oracle Compute云上搭建MySQL高可用集群.客户 ...

  7. Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)

    目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...

  8. MySQL主主模式+Keepalived高可用

    今天闲来无事,打算搭建一个MySQL的高可用架构,采用的是MySQL的主主结构,再外加Keepalived,对外统一提供虚IP.先来说说背景吧,现在的项目为了高可用性,都是避免单节点的存在的,比如,我 ...

  9. centos7.4安装高可用(haproxy+keepalived实现)kubernetes1.6.0集群(开启TLS认证)

    目录 目录 前言 集群详情 环境说明 安装前准备 提醒 一.创建TLS证书和秘钥 安装CFSSL 创建 CA (Certificate Authority) 创建 CA 配置文件 创建 CA 证书签名 ...

随机推荐

  1. Oracle的DQL

    基本查询: 链接语句: sqlplus scott/tiger@192.168.56.101:1521/orcl SQL> --清屏 SQL> host cls (host clear) ...

  2. session/cookie/token

    1.cookie是把登录信息存放在客户端 2.session是把登录信息存放在服务器 3.token是在登录的时候服务器提供一个令牌标识,可以存放在local storage,请求资源时带上token ...

  3. Installation failed with message Failed to finalize session: INSTALL_FAILED_TEST_ONLY:installPackageLI.

    这样还不行的话,加 -t吧.

  4. sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法

    登陆数据库后,右键打开表提示:目录名无效,执行SQL语句也提示有错误,现在把解决方法分享给大家 1.新建查询 2.点工具栏中[显示估计的查询计划],结果提示Documents and Settings ...

  5. (贪心 map) Flying to the Mars hdu1800

    Flying to the Mars Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  6. 2018acm-icpc青岛站后记

    我要谢谢队友和出题人给了我这一个走出自闭的机会. 继上一个星期徐州因为1分钟的罚时痛失铜牌之后一度茶饭不思,深陷被铜牌支配的恐惧,孤注一掷将宝压到了下一站的青岛上. 幸好拿了银. 给浙大的出题人点赞, ...

  7. Mybatis分页插件PageHelper

    application.properties配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.suppor ...

  8. ElasticSearch的插件(Plugins)介绍

    ElasticSearch的插件(Plugins)介绍 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 目前可以扩展ElasticSearch功能的插件有很多,比如:添加自定义的映 ...

  9. java读取配置文件信息

    ResourceBundle resource = ResourceBundle.getBundle("shopxx");//不要加.properties后缀,我加了报错 reso ...

  10. @GetMapping(value="/") , "/" 可加可不加 ,是不是一样的

    @GetMapping(value = "/user") 和  @GetMapping(value = "user") 的区别 1.带上 "/&quo ...