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

二 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. eclipse添加market ,maven

    添加market 转载自http://blog.csdn.net/buptdavid/article/details/42423247 Eclipse Marketplace是个插件应用商店,很实用的 ...

  2. zookeeper脑裂

    出现: 在搭建hadoop的HA集群环境后,由于两个namenode的状态不一,当active的namenode由于网络等原因出现假死状态,standby接收不到active的心跳,因此判断activ ...

  3. MySQL入门介绍(mysql-8.0.13)

    MySQL入门介绍(mysql-8.0.13单机部署) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL数据库介绍 1>.MySQL是一种开放源代码的关系型数据库 ...

  4. IDEA之debug的坑

    IDEA是一款火热的开发工具.debug谁都会,很简单?NO 一次不正常的关机,导致第二条上班debug失效,浪费两个小时.特做此记录. 1.如下图点击View Breakpoints进入可以到你设置 ...

  5. 加密PDF文件的打印问题

    工作中遇到网上下载的PDF文件加密,并且不能打印 解决方法: 1.解密: 去网站下载解密软件,1M左右:http://www.onlinedown.net/soft/19939.htm 直接解压,运行 ...

  6. 搭建Github博客:开始

    先看效果:ious.ml 记录使用hexo搭建个人博客的过程 至于在博客里记录什么内容,现在还没想好.已经熟悉了博客园,不想换. 1.概念 Github Pages Github Pages可以被认为 ...

  7. jQuery使用(七):事件绑定与取消,及自定事件的实现原理

    实例方法: on() one() off() trigger() hover() 一.绑定事件与jQuery事件委托 $(selector).eventType(fn); $(selector).on ...

  8. hbase 实战项目

    首先 根据 hadoop 搭建 + hbase 搭建把 环境弄好 由于 hbase 依赖于 hdfs ,所以 需要 进入 hadoop -->sbin 下 启动 start-dfs.sh , s ...

  9. 关于selenium的那些坑

    selenium 辅助工具 splinter 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位 ...

  10. 混合app开发--js和webview之间的交互总结

    使用场景:原生APP内嵌套H5页面,app使用的是webview框架进行嵌套 这样就存在两种情况 1.原生app调用H5的方法 2.H5调用app的方法 分别讲解下,其实app与H5之间的交互式非常简 ...