Tomcat+memcached兑现Session共享
Tomcat+memcached实现Session共享
放到tomcat\webapps\ROOT下就好了。同样二个tomcat都放一个
1,准备文件
memcached windows版
下载地址:http://download.****.net/detail/yangwei19680827/6026309
相关jar包
直载地址:http://download.****.net/detail/yangwei19680827/6026323
Tomcat
去官网下载http://tomcat.apache.org/download-60.cgi 注意版本下载的是6.x的
2,安装Memcached
将下载的memcached解压到C盘根目录,如想解压到其它盘请修改文件夹中的install.bat
解压后的目录为C:\memcached\
执行目录中的install.bat(win7需要以管理员身份运行,否则服务安装失败)
安装好后看服务中是不是已安装的服务名memcached_11211
启动服务
3,配置Tomcat
修改Tomcat端口,此处不做讲解,自行百度
假设Tomcat1端口为8080
tomcat2端口为8081
将相关jar包中的jar包全部复制到二个tomcat的lib目录
修改Tomcat\conf\content.xml
在content中增加如下代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" />二个Tomcat都要加哦。
4,测试页面
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false"%> SessionID:<%=session.getId()%> <BR> SessionIP:<%=request.getServerName()%> <BR> SessionPort:<%=request.getServerPort()%> <% out.println("This is Tomcat Server 111111!"); %>
放到tomcat\webapps\ROOT下就好了。同样二个tomcat都放一个
首先启动Tomcat1
访问http://localhost:8080/test.jsp记住页面中的sessionId
把Tomcat1关掉。启动tomcat2
在浏览器中访问http://localhost:8081/test.jsp发现sessionId没有变化说明成功咯。。。
网上有些方法一会这个错。一会儿那个错。折腾了老前天了。。
【转载请注明出处】
- 2楼bing__bing3天前 19:59
- 好东西。问一下,memcache这个东西第一次查询的时候是从数据库查询然后放到memcache里。然后从memcache那我要是数据更新了呢。他是从什么地方查询。是数据库还是memcache。
- Re: yangwei196808273天前 20:00
- 回复bing__bingn这个跟数据库是没有关系的。只限于Tomcat的session交给Memcache管理,当然也可以将memcache用在其它用途
- 1楼zhangchi_3天前 16:29
- MemoryCache的session共享是把Session存储在一个远程的服务器上,这样会增加运营成本,不如在配置负载均衡的时候,设置同一用户持续访问某一台服务器,这样就不用单独处理Session管理这部分了。不过个人不建议使用Session
- Re: yangwei196808273天前 18:13
- 回复zhangchi_n不使用Session阁下有什么更好的解决方案么?求教