[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. C# 6.0:Auto-Property initializer

    在之前的开发中,属性只能在构造函数中进行初始化,如果它有定义一个后台字段的话,那这个字段就就可以在定义的地方初始化.C# 6.0 引进了一个Auto-Property initializer机制使属性 ...

  2. text_CNN笔记

    Text-CNN模型作为文本分类模型,通过验证实验以及业界的共识,在文本分类任务中,CNN模型已经能够取到比较好的结果,虽然在某些数据集上效果可能会比RNN稍差一点,但是CNN模型训练的效率更高.所以 ...

  3. RESTful levels、HATEOAS

    概述: REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fiel ...

  4. 关于Python的Mixin模式

    转自:http://www.bjhee.com/python-mixin.html 像C或C++这类语言都支持多重继承,一个子类可以有多个父类,这样的设计常被人诟病.因为继承应该是个”is-a”关系. ...

  5. vue分页效果

    js部分 <script src="....js/vue.js"></script> <script src="..../js/vue-re ...

  6. 4种好用的python编辑器

    1.Sublime Text: 这是一个轻量级的代码编辑器,跨平台,支持几十种编程语言,包括Python,Java,C/C++等,小巧灵活,运行轻快,支持代码高亮.自动补全.语法提示,插件扩展丰富,是 ...

  7. mybatis学习 -每天一记 mybatis insert null 报错

    mybatis 插入数据,model的属性存在null,插入报错 在使用mybatis 进行insert时,如果字段值存在null的情况,会出现插入失败的情况,解决方案: 如果使用spring boo ...

  8. Lintcode - 20.骰子求和

    题目: 扔 n 个骰子,向上面的数字之和为 S.给定 Given n,请列出所有可能的 S值及其相应的概率. 给定 n = 1,返回 [ [1, 0.17], [2, 0.17], [3, 0.17] ...

  9. 基于C/S 结构的IM即时通讯软件--上篇

    目的:实现类似QQ群聊的聊天室,可以看到好友列表及互相传送信息. 分析:可基于C/S结构实现即时通讯 1.创建基于对话框的MFC程序(支持windows套接字),并增加相应的类与结构体,完善对话框界面 ...

  10. windows,mac os与 linux 3系统共存

    硬盘1,C盘 win7 ,D盘 win7文件,E盘 mac os系统 通过easybcd引导, 选项1 ,window 7 选项2,mac --便捷式/外接存储介质(是一个制作好的专门引导mac的工具 ...