redis+keepalived实现双机热备

1、由于系统用到lvs集群,集群就得session共享,于是用redis来保存session,用到的包是

tomcat-redis-session-manager-1.2-tomcat-6.jar,commons-pool-1.3.jar,jedis-2.0.0.jar

修改context.xml,

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />  
	<Manager className="com.radiadesign.catalina.session.RedisSessionManager"  
	host="10.108.66.246"  
	port="6379" 
	database="0"
	maxInactiveInterval="60"/> 

 

就能把session保存到redis


2、用keepalived实现双机热备

keepalived的安装跟redis的安装就不说了,redis去官网下载,keepalived用系统盘安装

因为keepalived要通信,测试要把防火墙关掉(这个问题搞了我一天,最后上网查到的),如果不管掉,在防火墙规则里面加上这两个:

-A INPUT -i eth0 -d 224.0.0.0/8 -j ACCEPT
-A INPUT -i eth0 -p 112 -j ACCEPT

keepalived的配置如下:(keepalived.conf)

! Configuration File for keepalived

global_defs {
   router_id redis
}
vrrp_script chk_redis {
        script "/etc/keepalived/script/redis_check.sh"
        interval 2
}

vrrp_instance VI_1 {
    state MASTER --备机写BACKUP
    interface eth0
    virtual_router_id 51
    priority 101 --备机100,比101小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass redis
    }
    track_script {
        chk_redis
    }
    virtual_ipaddress {
        10.7.8.20
    }
    notify_master /etc/keepalived/script/redis_master.sh
    notify_backup /etc/keepalived/script/redis_backup.sh
    notify_fault /etc/keepalived/script/redis_fault.sh
    notify_stop /etc/keepalived/script/redis_stop.sh
}
<span style="font-size:24px;">redis_master.sh配置</span>
<pre name="code" class="html">#! /bin/bash
# file redis_master.sh
REDISCLI="/etc/redis/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"

echo "[MASTER BEGIN]" >> $LOGFILE
date >> $LOGFILE
echo "begin master..." >> $LOGFILE

echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 10.7.8.27 6379 >> $LOGFILE
sleep 10

echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF NO ONE >> $LOGFILE
echo "[MASTER END]" >> $LOGFILE


 
<span style="font-size:24px;">redis_backup.sh配置</span>
#! /bin/bash
# file redis_master.sh
REDISCLI="/etc/redis/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"

echo "[BACKUP BEGIN]" >> $LOGFILE
date >> $LOGFILE
echo "begin slave..." >> $LOGFILE

sleep 15
echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 10.7.8.27 6379 >> $LOGFILE
echo "[BACKUP END]" >> $LOGFILE

基本差不多了,fault和stop可以不用

到此,双机热备配置成功。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值