tomcat相关实验 (3)

tomcat相关实验

tomcat相关实验

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 :8080 BalancerMember :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等客户端工具 ##访问发现被调度到不同的tomcat主机,但会话是一样的 memdump --server 172.18.21.107:11211 ##此命令可以查看到memcache中缓存的值 systemctl stop memcached ##关闭一台memcached ##继续访问发现会话仍然不变,说明会话在两台memcache中都缓存了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsjjs.html