[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. RAMOS和SSD对比

    http://bbs.pcbeta.com/forum.php?mod=redirect&goto=findpost&ptid=1786284&pid=48341400RAMO ...

  2. 2018-2019-2 20165312《网络攻防技术》Exp2 后门原理与实践

    2018-2019-2 20165312<网络攻防技术>Exp2 后门原理与实践 课上知识点梳理总结 1.后门的概述 后门是指不经过正常认证流程而访问系统的通道 两个关键词:未认证.隐通道 ...

  3. PVID和VID彻底研究(上) ——PVID的作用及和VID的区别

    http://blog.csdn.net/cybertan/article/details/8348752 另外一篇 netgear的官方文档: http://club.netgear.cn/Know ...

  4. 并发之痛 Thread,Goroutine,Actor

    转自:http://jolestar.com/parallel-programming-model-thread-goroutine-actor/ 先梳理下两个概念,几乎所有讲并发的文章都要先讲这两个 ...

  5. win10 mac随机功能测试

    win10 MAC随机功能指针对无线网卡 随机功能包含网卡随机, 跟网络随机两种, 这两种互不影响 一“无线网卡mac随机” 单击无线图标->网络和internet设置->wlan 影响无 ...

  6. Jmeter发送邮件功能SMTP Sampler

    介绍Jmeter的发送邮件功能,使用的Sampler是SMTP Sampler,详细说明每个配置项的功能 从上往下介绍需要用到的配置项: Server settings Server: 服务器地址 P ...

  7. iPerf 笔记

    iPerf 笔记 iperf 是一个网络性能测试工具,可以测试最大TCP和UDP带宽质量,具有多种参数和UDP特性,可以报告带宽.延迟抖动和数据包丢失. iperf 可以用来测一些网络设备,比如路由器 ...

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

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

  9. 编译ijkplayer后直播无声音

    打开:ijkplayer-android/config/module-lite.sh 文件: 你要把neyllow打开,默认是关闭的,如下: export COMMON_FF_CFG_FLAGS=&q ...

  10. React基础概念

    Hello Wrold ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root') ); ...