LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持

在上一篇中说到了挂掉server1的服务,然后在server2中可以实现会话保持,但是server1上之前的注册数据并不会同步到server2上,这时候就需要会话共享,让server1挂掉后,在server2上可以看到之前server1注册数据,并且在新的server2上实现会话保持

这个时候就要用到memcache这个存储节点,它属于交叉存储
tomcat1和tomcat2上面都有memcache存储(把数据缓存在内存当中)
分别为memcache1和memcache2
这两个存储节点属于存储节点
当tomcat1挂了之后,客户1就会去访问tomcat2对应的memcache
这时候会把用户放在memcache1的数据全部放到memcache2上面
如果tomcat服务器都好着,memcache不会同步数据过,一旦坏了立刻同步数据过来
这就是memcache-session交叉存储的好处

什么是session?
Session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 Session 保存在服务器上
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是 Session
客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了
session共享原理及实现共享
http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你

当两台后端服务器中由一台挂掉了,能否保证数据不丢失并转移到另外一台服务器中,这就需要会话共享,操作如下:

查看server1和server2的tomcat服务是否开启,8080端口
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第1张图片
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第2张图片
在server2上面:
yum install memcached -y 安装缓存的服务
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第3张图片
== server1上面:==
cd //usr/local/tomcat/lib
查看tomcat下当前的jar包
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第4张图片
从真机上面拷贝memcache-session到server1和server2这两个tomcat服务器上面
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第5张图片
在server1上面
将拷贝过来的jar目录下面所有jar包移到当前目录
在这里插入图片描述
删除重复多余的包
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第6张图片
server2上一样的操作
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第7张图片
在server1上
cd /usr/local/tomcat/
cd conf/
vim server.xml编辑tomcat的配置文件,解释了三个端口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server1和server2修改context.xml文件,然后关闭再重启tomcat
cd /usr/local/tomcat/conf/
vim context.xml
加入实现session共享的内容

LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第8张图片
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第9张图片
== 在server1上面;==
cd /usr/local/tomcat/bin/
./shutdown.sh
./startup.sh 重启tomcat服务

在server2上面:
/etc/init.d/memcached status
/etc/init.d/memcached start开启memcache服务
cd /usr/local/tomcat/bin/
./shutdown.sh
./startup.sh开启tomcat服务
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第10张图片
netstat -antlupe
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第11张图片
== 测试:看有没有实现数据共享(通过memcache)==

在浏览器里面输入172.25.15.1/test.jsp,注册信息这个属于动态处理
开始注册信息(多注册几个),一直是tomcat2服务器接受请求
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第12张图片
然后关闭server2的tomcat服务
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第13张图片
继续注册信息(多注册几个),发现同一个用户注册所有的数据会同步过来,且server info变成了 server1
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第14张图片
如果两个都好着,不会同步,一旦一个宕机,数据会利马同步到另外一个上面
这样就实现了数据的转移

在server1中
在这里插入图片描述
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第15张图片
vim catalina.out 可以看到数据迁移记录
LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持_第16张图片

你可能感兴趣的:(LNMP动态缓存(nginx +tomcat+memcache) 实现session共享和会话保持)