[root@cache-redis-~/]# cat  /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
@qq.com
}
notification_email_from @.cn
smtp_server smtp..cn
smtp_connect_timeout
router_id redis_service01
vrrp_skip_check_adv_addr
# vrrp_strict # can not use ping
vrrp_garp_interval
vrrp_gna_interval
}
vrrp_script chk_redis {
script /etc/keepalived/scripts/redis_check.sh ###监控本地redis alive
interval ###监控时间间隔(秒)
}
vrrp_instance redis {
state BACKUP
interface eth0
virtual_router_id
priority
nopreempt ###不抢占MASTER
advert_int
authentication {
auth_type PASS
auth_pass
}
track_script {
chk_redis ###执行上面定义的chk_redis
}
virtual_ipaddress {
172.16.1.63/24 dev eth0 label eth0:63
}
notify_master /etc/keepalived/scripts/redis_master.sh # 当此节点切换为master时执行的脚本
notify_backup "/etc/keepalived/scripts/redis_backup.sh cache-redis-" # 当此节点切换为
# backup时执行的脚本
notify_fault /etc/keepalived/scripts/redis_fault.sh # 当此节点故障时(chk_keepalive中
# 脚本返回非0)执行的脚本
notify_stop /etc/keepalived/scripts/redis_stop.sh # 当此节点keepalived服务stop时执行的脚本
}
[root@cache-redis-~/]# cat /etc/keepalived/keepalived.conf    
! Configuration File for keepalived
global_defs {
notification_email {
@qq.com
}
notification_email_from @.cn
smtp_server smtp..cn
smtp_connect_timeout
router_id redis_service02
vrrp_skip_check_adv_addr
# vrrp_strict # can not use ping
vrrp_garp_interval
vrrp_gna_interval
}
vrrp_script chk_redis {
script /etc/keepalived/scripts/redis_check.sh ###监控本地redis alive
interval ###监控时间间隔(秒)
}
vrrp_instance redis {
state BACKUP
interface eth0
virtual_router_id
priority 50 advert_int
authentication {
auth_type PASS
auth_pass
}
track_script {
chk_redis ###执行上面定义的chk_redis
}
virtual_ipaddress {
172.16.1.63/24 dev eth0 label eth0:63
}
notify_master /etc/keepalived/scripts/redis_master.sh # 当此节点切换为master时执行的脚本
notify_backup "/etc/keepalived/scripts/redis_backup.sh cache-redis-" # 当此节点切换为
# backup时执行的脚本
notify_fault /etc/keepalived/scripts/redis_fault.sh # 当此节点故障时(chk_keepalive中
# 脚本返回非0)执行的脚本
notify_stop /etc/keepalived/scripts/redis_stop.sh # 当此节点keepalived服务stop时执行的脚本
}
 跟从的脚本完全一样!!!                                                                                                    

mkdir -p /etc/keepalived/scripts

cat >/etc/keepalived/scripts/redis_master.sh<<-EOF
#!/bin/bash
PORT="\${1:-6380}"
REDISCLI="/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
sleep 10 #延迟10秒待数据被对方同步完成之后再切换主从角色
echo -e "[keepalived master]\t\$(date +%F_%T)\nRun SLAVEOF NO ONE cmd ..." >>\${LOGFILE}
\$REDISCLI -h \$(hostname) -p \${PORT} SLAVEOF NO ONE &>>\${LOGFILE}
EOF cat >/etc/keepalived/scripts/redis_backup.sh<<-EOF
#!/bin/bash
REMOTE_HOSTNAME="\$1"
PORT="\${2:-6380}"
REDISCLI="/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
sleep 15 #延迟15秒待数据被对方同步完成之后再切换主从角色
echo -e "[keepalived backup]\t\$(date +%F_%T)\nRun SLAVEOF \${REMOTE_HOSTNAME} \${PORT} ..." >>\${LOGFILE}
\$REDISCLI -h \$(hostname) -p \${PORT} SLAVEOF \${REMOTE_HOSTNAME} \${PORT} &>>\${LOGFILE}
EOF cat >/etc/keepalived/scripts/redis_check.sh<<-EOF
#!/bin/bash
PORT="\${1:-6380}"
LOGFILE=/var/log/keepalived-redis-state.log
ALIVE=\$(/bin/redis-cli -h \$(hostname) -p \${PORT} PING)
if [ "\$ALIVE" == "PONG" ]; then
exit 0
else
echo -e "[redis_check fault]\t\$(date +%F_%T)" >> \$LOGFILE
exit 1
fi
EOF cat >/etc/keepalived/scripts/redis_fault.sh<<-EOF
#!/bin/bash
systemctl stop keepalived.service
EOF cat >/etc/keepalived/scripts/redis_stop.sh<<-EOF
#!/bin/bash
LOGFILE=/var/log/keepalived-redis-state.log
echo -e "[keepalived stop]\t\$(date +%F_%T)" >> \$LOGFILE
EOF chmod +x /etc/keepalived/scripts/*.sh

redis+Keepalived主从热备切换实例的更多相关文章

  1. redis+Keepalived主从热备秒级切换

    一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y in ...

  2. redis(三)redis+Keepalived主从热备秒级切换

    一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y in ...

  3. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  4. 主从热备+负载均衡(LVS + keepalived)

    前言 淘宝架构师李智慧大牛的书籍<大型网站技术架构>以及旭龙兄的博客  --->[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡. 从上参考而得来本文,本文旨 ...

  5. nginx+keepalived简单双机主从热备

    双机主从热备概述 可以两台机子互为热备,平时各自负责各自的服务.在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续 ...

  6. 【Nginx】(主从热备)LVS+Keepalived+Nginx实现高性能负载均衡集群

    一.LVS 1.1 概述 1.2 Nginx与LVS区别什么 二.Keepalived 2.1 概述 2.2 keepalived和其工作原理 三.LVS+Keepalived+Nginx 搭建双机主 ...

  7. LVS + keepalived + nginx + tomcat 实现主从热备 + 负载均衡

    前言 首先声明下,由于这两天找资料,看了不少博客 ,但是出于不细心,参考者的博客地址没有记录下来,所有文中要是出现了与大家博客相同的地方,那么请大家在评论区说明并附上博客地址,我好引用进来:这里表示抱 ...

  8. Lvs+keepalived+mysql主从热备

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  9. keepalived双机热备nginx

    nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽 ...

随机推荐

  1. primo驱动启动顺序

    primo驱动启动顺序HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ServiceGroupOrderSystem ReservedEMSWdfLoa ...

  2. 流程帮App风险评估

    一. 存在风险 此处罗列出了我们开发小组可能遇到8种的风险. 编号 风险名称 内容 发生概率 损失(人周) 危险度(周) 1 计划编制风险 对所要使用技术不熟悉,可能导致无法交付: 每个模块的实现一定 ...

  3. 7.6.1 continue 语句

    7.6.1 continue 语句 3种循环都可以使用CONTINUE语句.执行到该语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代.如果continue语句在嵌套循环内,则只会影响包含该语句的内层 ...

  4. dns相关

    一 用于dns, whois相关的网站 1 http://viewdns.info/iphistory 2 http://bgp.he.net/ 3 https://whois.aliyun.com/ ...

  5. Resharper快捷键汇总

    编辑Ctrl + Space 代码完成 Ctrl + Shift + Space代码完成Ctrl + Alt + Space代码完成Ctrl + P 显示参数信息Alt + Insert 生成构造函数 ...

  6. winform datagridview 导出excel

    using System;using System.Collections.Generic;using System.Text;using System.IO;using Microsoft.Offi ...

  7. JAVA除法保留小数点后两位的两种方法

      1.(double) (Math.round(sd3*10000)/10000.0);  这样为保持4位 (double) (Math.round(sd3*100)/100.0); 这样为保持2位 ...

  8. WebApi的好处和MVC的区别

    1.WebApiwebapi有自己的路由. webservice和wcf的协议都是soap协议,数据的序列化和反序列化都是soap的格式.而webapi是Json的数据传递 webapi的优点有哪些? ...

  9. java封装的概念学习笔记

      继承.封装.多态.抽象是面向对象编程的四大基本概念,其中封装装为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装. 在面向对象中封装 ...

  10. 高性能 TCP & HTTP 通信框架 HP-Socket v4.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...