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可以不用
到此,双机热备配置成功。