keepalived高可用系列~keepalived+mysql
一 简介:建立读写分离模式
二 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的更多相关文章
- keepalived高可用系列~ keepalived+proxysql
一 简介:介绍下高可用通用的方案 二 目的:一个中间件提供服务,故障后,另一个中间件提供服务 三 手段: 应用keepalived的vrrp_scripts服务 四 具体配置 global_defs ...
- keepalived高可用系列~通用基础
简介:今天咱们来聊聊keepalived一 keepalived 架构 1 标准架构: keepalived+lvs/haproxy+后端 real server(mysql从库,nginx.myc ...
- MySQL的keepalived高可用监控脚本
MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占maste ...
- 22.LVS+Keepalived 高可用群集
LVS+Keepalived 高可用群集 目录 LVS+Keepalived 高可用群集 keepalived工具介绍 Keepalived实现原理剖析 VRRP(虚拟路由冗余协议) VRRP 相关术 ...
- mysql主主、mysql-proxy读写分离、keepalived高可用完美组合
配置mysql主主复制 服务器A:172.16.100.9 服务器B:172.16.100.10 首先在服务器A和服务器B上各安装好单机版mysql5.7,安装好后,再继续下面的操作. 在服务器A和服 ...
- Oracle Compute云快速搭建MySQL Keepalived高可用架构
最近有个客户在测试Oracle Compute云,他们的应用需要使用MySQL数据库,由于是企业级应用一定要考虑高可用架构,因此有需求要在Oracle Compute云上搭建MySQL高可用集群.客户 ...
- Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...
- MySQL主主模式+Keepalived高可用
今天闲来无事,打算搭建一个MySQL的高可用架构,采用的是MySQL的主主结构,再外加Keepalived,对外统一提供虚IP.先来说说背景吧,现在的项目为了高可用性,都是避免单节点的存在的,比如,我 ...
- centos7.4安装高可用(haproxy+keepalived实现)kubernetes1.6.0集群(开启TLS认证)
目录 目录 前言 集群详情 环境说明 安装前准备 提醒 一.创建TLS证书和秘钥 安装CFSSL 创建 CA (Certificate Authority) 创建 CA 配置文件 创建 CA 证书签名 ...
随机推荐
- Day7--Python--基础数据类型补充,集合,深浅拷贝
一.基础数据类型补充 1.join() 把列表中的每一项(必须是字符串)用字符串拼接 与split()相反 lst = ["汪峰", "吴君如", " ...
- VUE通过id从列表页跳转到相对的详情页
新闻列表页面: 在这里我用a标签进行跳转,在vue里面可以这样写<router-link></router-link> 1 <router-link :to=" ...
- IIS 错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
导致这种问题的原因是ASP.NET没有成功注册到IIS中,很有可能是先安装.Net Framework,然后安装IIS.为了避免此问题发生,要先安装IIS再安装.Net Framework. 解决方案 ...
- BashOnWindow安装mysql
1.下载mysql 服务器和客户端 sudo apt-get install mysql-server mysql-client 其中过程会让输入用户名和密码 2.启动mysql服务 sudo ser ...
- 用go实现一个redis-cli
转载文章:https://my.oschina.net/liangwt/blog/2231557?origin= 代码样例:https://github.com/liangwt/redis-cli
- 《Apache Kafka 实战》读书笔记-认识Apache Kafka
<Apache Kafka 实战>读书笔记-认识Apache Kafka 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka概要设计 kafka在设计初衷就是 ...
- Python中集合的操作
Python集合的基本详情 集合是无序的 集合是可变数据类型 集合属于不可哈希范围 集合自动去重 集合的操作 set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} ...
- JAVA核心技术I---JAVA基础知识(数据结构基础)
一:数组 (一)基本内容是与C一致的 (二)数组定义和初始化 (1)声明 int a[]; //a没有new操作,没有被分配内存,为null int[] b; //b没有new操作,没有被分配内存,为 ...
- python 包和模块间的引入
##############################总结####################### 主要内容: 1. 模块 2. import 3. from xxx import xxx ...
- HTML 基础知识汇总(一)
头部: <head> <!-- 国际通用编码 --> <meta charset="UTF-8"> <!-- 超链接优化写法,让所有的超链 ...