网站首页 > 精选文章 正文
redis keepalive
1.keepalived 配置
global_defs {
notification_email
{
shiye.meng@cnlaunch.com
}
notification_email_from shiye.meng@cnlaunch.com
smtp_server mail.cnlaunch.com
smtp_connect_timeout 30
router_id redis_ha # 设置lvs的id,在一个网络内应该是唯一的
} #end global
vrrp_sync_group redis_master { #设置vrrp组
group {
loadbalance
}
} #end vrr
vrrp_instance loadbalance {
state BACKUP #设置lvs的状态,报错MASTER和BACKUP两种,必须大写
interface eth0 #设置对外服务的接口
#lvs_sync_daemon_inteface eth0 #设置lvs监听的接口
virtual_router_id 51 #设置虚拟路由表示
priority 100 #设置优先级,数值越大,优先级越高
advert_int 1 #设置同步时间间隔
nopreempt #恢复时不抢占,主机上配置,备机不配置,#不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置
authentication { #设置验证类型和密码
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置lvs vip
192.168.146.150 dev eth0 label eth0:1 #绑定了本机
192.168.146.151 #不做本机启动时绑定
}
#设置监听脚本
notify_backup "/usr/local/keepalived/sbin/notify.sh backup"
notify_master "/usr/local/keepalived/sbin/notify.sh master"
notify_fault "/usr/local/keepalived/sbin/notify.sh fault"
notify_stop "/usr/local/keepalived/sbin/notify.sh stop"
} #end loadbalance
virtual_server 192.168.146.150 6379 {
delay_loop 6 #健康检查时间间隔
lb_algo rr #负载均衡调度算法
lb_kind DR #负载均衡转发规则
persistence_timeout 20 #设置会话保持时间,对bbs等很有用
protocol TCP #协议
#sorry_server 192.168.146.144 3306 #只有realserver出故障时才切换到sorry server,keepalived的sorry server天生具有这个特性
real_server 192.168.146.146 6379 {
weight 3 #设置权重
notify_down "/usr/local/keepalived/sbin/notify.sh stop_keepalived" #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 6379
} #end tcp_check
} #end real server
}#end virtual server
2.notify.sh
#!/bin/bash
#日志路径及文件
log_file="/var/log/keepalived.log"
#日志记录时间
log_time="`date +%Y%m%d_%H%M%S`"
function log_file()
{
echo "[$log_time] $* " >> $log_file
}
arg_type="$1"
#进入主环境
if [ "${arg_type}" == "master" ]
then
log_file "Starting master "
#判断进程是否存在
is_ok="`ps -ef|grep redis|grep 6379|grep -v grep|wc -l`"
if [ "$is_ok" -le 0 ]
then
#启动进程
/usr/local/bin/redis-server /usr/local/redis/redis.conf
fi
sleep 2
#停止slave复制,确保为主进程
/usr/local/bin/redis-cli SLAVEOF NO ONE
fi
#进入备环境
if [ "${arg_type}" == "backup" ]
then
log_file "Starting backup"
#判断进程是否存在
is_ok="`ps -ef|grep redis|grep 6379|grep -v grep|wc -l`"
if [ "$is_ok" -le 0 ]
then
#无进程时,启动进程
/usr/local/bin/redis-server /usr/local/redis/redis.conf
fi
sleep 5
#进入备机模式
/usr/local/bin/redis-cli SLAVEOF 192.168.146.144 6379
fi
#当出现错误
if [ "${arg_type}" == "fault" ]
then
log_file "fault "
log_file "Stoping keepalived "
#stop keepalive
cd /usr/local/keepalived/sbin
/bin/sh stop.sh
fi
#当keepalive 进程停止
if [ "${arg_type}" == "stop" ]
then
log_file "keepalived process not found "
log_file "Stoping keepalived "
#stop keepalive
cd /usr/local/keepalived/sbin
/bin/sh stop.sh
fi
#当redis服务停止时,停止keepalived 服务
if [ "${arg_type}" == "stop_keepalived" ]
then
log_file "redis server 6379 not found"
log_file "Stoping keepalived "
#stop keepalive
cd /usr/local/keepalived/sbin
/bin/sh stop.sh
fi
猜你喜欢
- 2025-02-04 Redis系列之(二):Redis主从同步,读写分离
- 2025-02-04 redis主从搭建、发现阻塞、内存管理优化(四)
- 2025-02-04 redis配置密码【永久及临时配置】
- 2025-02-04 Redis集群配置(redis集群配置文件详解)
- 2025-02-04 Redis 为什么要引入 Pipeline机制?十分钟带你掌握!
- 2025-02-04 Spring Security结合Redis实现缓存功能
- 2025-02-04 Redis 7.x哨兵模式如何实现?基于Spring Boot 3.x版
- 2025-02-04 redis在linux上的部署(linux redis部署)
- 2025-02-04 我们一起进大厂——Redis实战之哨兵模式
- 2025-02-04 面试官:介绍一下 Redis 三种集群模式
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)