你的位置:首页 > 软件开发 > ASP.net > 【电商】nginx+tomcat+memcached实现session共享集群

【电商】nginx+tomcat+memcached实现session共享集群

发布时间:2015-07-23 13:00:10
在分布式多tomcat web集群环境下,首先要解决的是session的共享问题,一般的实现思路有:(1) session复制:多tomcat之间进行session的同步,集群中的tomcat存储相同的session信息(2) 共享session存储:将session集中存储在同 ...

在分布式多tomcat web集群环境下,首先要解决的是session的共享问题,一般的实现思路有:

(1) session复制:多tomcat之间进行session的同步,集群中的tomcat存储相同的session信息

(2) 共享session存储:将session集中存储在同一个地方,如redis/memcached,甚至DB。tomcat本身的内存中并不存储session

(3) session粘性:其实session粘性并不是session共享的方案,而是多tomcat的集群方案,配合nginx/apache实现,将同一用户请求转向到相同的tomcat结点,多结点之间并不共享sesison。优点是实现简单,缺点就是结点故障时,会丢失部分session。一般会配合前两种方式使用。

 

本文记录使用memcached-session-manager组件搭建nginx+tomcat+memcached实现集群和session共享存储环境的全部过程。

nginx:1.8.0

tomcat两个:6.0.44 

memcached集群:1.4.4

 

memcached-session-manager提供了多种session数据序列化策略:

(1) java序列化:要求待存储的信息实现java.io.Serializable接口;

(2) kryo序列化

(3) javolution

(4) xstream

(5) flexjson

参见:http://code.google.com/p/memcached-session-manager/wiki/SerializationStrategies

这里的使用的序列化策略为kryo

(1) 将下面所有依赖的这些jar包放在$TOMCAT_HOME/lib中:

asm-3.2.jar  kryo-1.04.jar  kryo-serializers-0.11.jar  memcached-session-manager-1.8.3.jar  memcached-session-manager-tc6-1.8.3.jar  minlog-1.2.jar  msm-kryo-serializer-1.8.3.jar  reflectasm-1.01.jar  spymemcached-2.11.1.jar

(2) 两个tomcat分别配置conf/context. 【电商】nginx+tomcat+memcached实现session共享集群【电商】nginx+tomcat+memcached实现session共享集群

  1. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
  2.     memcachedNodes="n1:localhost:11211,n2:localhost:11212"  
  3.     sticky="false"  
  4.     sessionBackupAsync="false"  
  5.     lockingMode="uriPattern:/path1|/path2"  
  6.     requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  
  7.     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"  
  8.     />  

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:【电商】nginx+tomcat+memcached实现session共享集群

关键词:tomcat

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录