一、为什么要实现共享
首先我们应该明白,为什么要实现共享,如果你的网站是存放在一个机器上,那么是不存在这个问题的,因为会话数据就在这台机器,但是如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话id在客户端是没有问题的,但是如果用户的两次请求到了两台不同的机器,而它的session数据可能存在其中一台机器,这个时候就会出现取不到session数据的情况,于是session的共享就成了一个问题。
二、Session一致性解决方案
1、session复制
tomcat本身带有复制session的功能。
2、共享session
需要专门管理session的软件,memcached缓存服务,可以和tomcat整合,帮助tomcat共享管理session。
三、安装memcached
1.安装memcached内存数据库
yum install memcached–y
可以用telnet localhost 11211
2.web服务器连接memcached的jar包拷贝到tomcat的lib
拷贝至所有虚拟机
3.配置tomcat的conf目录下的context.xml
拷贝至所有虚拟机
注意:地址改成装memcached的地址
4.修改index.jsp,取sessionid看一看
<%@ page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
SessionID:<%=session.getId()%>
SessionIP:<%=request.getServerName()%>