尽管分布式能解决高并发的问题,但是如何保持每个服务器下的session一致性呢,session共享是一个分布式环境下的很重要的问题。有两种方案:
- session复制
tomcat 本身带有复制session的功能。
2. 共享session
需要专门管理session的软件,
memcached 缓存服务,可以和tomcat整合,帮助tomcat共享管理session。这里就是介绍memcached的安装及配置:
第一步:安装memcached内存数据库
命令:yum install memcached -y
第二步:需要将tomcat整合memcached的jar包拷贝到参与session共享服务器中tomcat的lib目录下,所需jar包有这些,可以自己下载,也可以通过链接下载。https://download.csdn.net/download/qq_39164068/11007362
第三步:配置tomcat的conf目录下的context.xml
命令如下:只需要把下图中绿色箭头所指的ip改成memcached所在服务器ip即可,其他不要动。默认端口11211。配置好了一个可以直接把文件复制到其他需要session共享的服务器tomcat下。
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.17.9:11211"
sticky="true"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />
第四步:启动memcached
命令: memcached -d -m 128m -p 11211 -l 192.168.235.101 -u root -P /tmp/
注意命令中的ip是memcached所在ip