
6.实现session会话保持到memcache服务器
要想将会话保存至后端memcache中,并且每个memcache都保存相同的会话,需要一个管理项目memcached-session-manager,项目地址:https:
//github.com/magro/memcached-session-manager,找到SetupAndConfiguration wiki page.并点击进去。其中
在Add memcached-session-manager jars
to tomcat处下载(根据所需进行下载)
下载.jar文件至各tomcat的/usr/share/tomcat/lib/目录中,其中的$
{version}要换成你所需要的版本号,tc$
{6,7,8}要选与tomcat版本相同的版本号。
memcached-session-manager-
2.1.
1.jar
memcached-session-manager-tc7-
2.1.
1.jar ##要根据tomcat的版本,实验时是
7版本,所以这里要下载tc7
spymemcached-
2.9.
1.jar
在Add custom serializers
to your webapp (optional)处下载(根据所需进行下载)
这里下载的是kryo-serializer,有如下jar文件需要下载
msm-kryo-serializer-
2.1.
1.jar
kryo-serializers-
0.42.jar
kryo-
4.0.
1.jar
minlog-
1.3.
0.jar
reflectasm-
1.11.
3-shaded.jar
reflectasm-
1.11.
3.jar
asm-
5.2.jar
objenesis-
2.6.jar
实现过程如下
1、在director上实现nginx或者httpd的反向代理至tomcat集群,本实验用的是httpd
vim
/etc/httpd/conf.d/tomcat.conf
<proxy balancer://tomcatsrvs>
BalancerMember http:
//172.18.213.251:8080
BalancerMember http:
//172.18.213.254:8080
ProxySet lbmethod=byrequests
</Proxy>
namevirtualhost *:
80
<VirtualHost *:80>
documentroot /app
<directory /app>
Require all granted
</directory>
ProxyVia On
ProxyRequests Off
ProxyPass / balancer:
//tomcatsrvs/
ProxyPassReverse / balancer:
//tomcatsrvs/
</VirtualHost>
service httpd start
2、在两个后端服务器上的设置
安装tomcat和memcache并启动服务
yum install memcached -y
systemctl start memcached
ls
/usr/share
/tomcat/lib/
##复制.jar文件到此目录
vim
/etc/tomcat/server.xml
##将官方文档中的此段内容复制到tomcat的配置文件中
<Context path="/app" docBase="/usr/share/tomcat/webapps/app" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.18.213.254:11211,n2:172.18.213.254:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
</Context>
systemctl restart tomcat
3、测试
安装客户端工具
yum install -y libmemcached
##不安装此软件包无法使用memdump等客户端工具
http://172.18.213.253/app/
##访问发现被调度到不同的tomcat主机,但会话是一样的
memdump --server
172.18.21.107:
11211
##此命令可以查看到memcache中缓存的值
systemctl stop memcached
##关闭一台memcached
http://172.18.213.253/app/
##继续访问发现会话仍然不变,说明会话在两台memcache中都缓存了
更多Tomcat相关教程见以下内容:
CentOS 6.6下安装配置Tomcat环境