01 前言
上期我们介绍keepalived与Nginx的配置,现在我们介绍一下Tomcat与Redis是怎么实现session共享。
本文转自我个人的公众号:天目星 ,请大家多多关注。
一、使用的软件版本与架构图。
linux: CentOS 7.5.1804
Keepalived: keepalived-1.3.5
Nginx: nginx-1.12.2
Tomcat: apache-tomcat-7.0.93
Redis: redis-3.2.12
二、安装软件(后端)
1、安装Tomcat
Tomcat是一个小型的免费的轻量级应用服务器,可用于开发和调试JSP程序,在并发访问用户不是很多的场合普遍使用。
前提条件:tomcat需要java的支持,请可以前往Oracle下载rpm包安装。本例使用的是jdk-7u80-linux-x64.rpm
源码包请自行前往Apache tomcat官网下载,我们使用的是Binary Distributions来安装。
解压安装
# 解压
tar xvf apache-tomcat-7.0.93.tar.gz
# 移动二进制包到你想存放的路径
mv apache-tomcat-7.0.93 /usr/local/tomcat
# 创建tomcat用户,使用非root的用户运行更安全
groupadd -r -g 310 tomcat
useradd -u 310 -g 310 -s /sbin/nologin tomcat
# 授权tomcat用户
chown -R tomcat.tomcat /usr/local/tomcat
配置启动服务
vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置tomcat
#配置负载均衡中tomcat使用的标识符(不可重复)
vim /usr/local/tomcat/conf/server.xml
# 两个节点相应的设置:jvmRoute="tomcat01" ,另一台设置"tomcat02"
2、安装Redis
可以前期Redis官网下载源码安装,也可以使用yum源安装。
# 使用yum源安装redis
yum install redis
配置Redis(使用主从模式)
# 修改配置文件
vim /etc/redis.conf
### 主节点配置 ###
# bind 127.0.0.0 #注释掉本地监听
port 6400 #设定监听端口
protected-mode no #本例用于测试
pidfile "/var/run/redis_6400.pid"
### 从节点配置 ###
# bind 127.0.0.0 #注释掉本地监听
port 6000
protected-mode no #本例用于测试
pidfile "/var/run/redis_6400.pid"
slaveof 192.168.0.3 6400 #主节点的IP地址
配置Redis-Sentinel
# 修改配置文件
vim /etc/redis-sentinel.conf
### 主从配置一致 ###
daemonize yes #开启守护进程
port 23456 #端口
protected-mode no #本例用于测试
# 配置要监控主服务器(详解)
# 定义主服务器名: mymaster
# 主服务ip: 192.168.0.3
# 主服务端口:6400
# 设置为1个sentinel: 1 # 至少要1个sentinel发现主节点是故障的才进行转移
sentinel monitor mymaster 192.168.0.3 6400 1
# 设置sentinel认定一个服务器断线5000毫秒,sentinel就认定该服务DOWN
sentinel down-after-milliseconds mymaster 5000
# 设置发生主备切换时最多可以有多少个slave同时对新的master进行同步,本例只有一个slave,设置为1
sentinel parallel-syncs mymaster 1
测试Redis主从情况
# 使用redis客户端测试连接
redi-cli -h 192.168.0.3 -p 6400
# 连接上后使用 info replication 显示主从信息
192.168.0.3:6400> info replication
主节点信息
从节点信息
3、配置Tomcat连接Redis
tomcat连接redis需要以下几个jar包的支持,请自行下载并拷贝至tomcat的lib目录
# cd /usr/local/tomcat/lib
tomcat-redis-session-manage.jar
jedis.jar
commons-pool2.jar
修改Tomcat的context.xml配置
# vim /usr/local/tomcat/conf/context.xml
# 在
中添加如下配置
host="192.168.0.3"
port="6400"
maxInactiveInterval="180"/>
配置tomcat会话到期时间
# vim /usr/local/tomcat/conf/web.xml
30
添加测试页至webapps中
# vim /usr/local/tomcat/webapps/test/index.jsp
##############
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
test page
查询当前保存的Session信息
SessionID: <%=session.getId()%>
SessionIP: <%=request.getRemoteAddr()%>
SessionServerName: <%=request.getServerName()%>
SessionPort: <%=request.getServerPort()%>
SessionText: <%out.println("This is Tomcat01");%>
4、开始测试
经过以上的配置,大家已经搭建好整个架构,现在我们需要磨刀霍霍向猪羊...哦,错了...应该向键盘输入命令把所有服务开启,并打开浏览器测试会话保存情况了。
启动服务
# 启动顺序
systemctl start nginx.service
systemctl start keepalived.service
systemctl start tomcat.service
systemctl start redis.service
systemctl start redis-sentinel.service
打开浏览器
http:///test/index.jsp
02 结尾
本期的又到了说再见的时候,相信大家通过这次演示可以初步了解此架构。当然这个架构还有许多需要补充的地方,欢迎大家一起讨论。后续还有其他演示,请继续关注此公众号。