在做server集群和负载均衡等等之前首先要做的一件事就是session共享,否则集群也是无意义的根本无法使用,去年写过一篇window+tomcat-cluster实现的session共享( 多个Tomcat之间实现Session共享),但在实际的生产环境应用服务器一般还是会用linux,而且实现session共享的方式更不会用tomcat自带的cluster来做了,因为那样是效率最低的,我们往往会通过第三方的库来完成这件事,例如:memcached、Redis等等。废话不多说,本篇文章就简单记录一下Linux centos 7下通过Memcached实现session共享。
我们提供的服务有:成都网站制作、成都网站建设、外贸营销网站建设、微信公众号开发、网站优化、网站认证、丹东ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的丹东网站制作公司
然后我们一次修改这三个tomcat的端口,包括shutdown端口、http协议端口以及AJP协议端口。中间的不用说了,前后这两个端口是为了保证可以同时启动多个Tomcat,http端口我们分别修改为8081、8082和8083,接下来就可以着手开始配置session共享了。
RT,首先memcached我的版本是1.4.25,在memcached对session的管理策略中,我们选择kyro,关于memcached-session-manager的版本我这里选择1.5.1,由于我们使用的是tomcat7所以还需要memcached-session-manager-tc7-1.5.1这个jar包。在此就不一一列举了,jar包版本很重要否则容易出现冲突,我这里把用到的所有jar包打包上传,用的时候直接把它们全部复制到tomcat目录下的lib目录即可,tomcat-7.0.57版本的话可以直接无脑覆盖,否则需要跳过重复的jar包,全部jar包的下载地址如下:
到主机宝贝1号FTP服务器下载
在 2016年LinuxIDC.com\9月\Linux CentOS 7 下通过Memcached实现Session共享\
jar包准备好的话就分别拷贝到我们集群的3个Tomcat的lib目录下,然后再分别修改每个Tomcat目录下的conf/context.xml文件,在其中添加memcached-session-manager的配置。因为我们这里集群了3台Tomcat,所以我们必须使用non-sticky模式,即采用非粘性session管理配置,配置文件如下:
memcached的默认端口号是11211,如果不确定的话可以通过netstat来查看,命令如下:
netstat -tunlp | grep memcached
没有其它问题的话就依次启动三个Tomcat,再启动Memcached,接着就可以测试session共享了。
在IDE创建一个web项目部署后再从tomcat拷贝出来即可,唯一需要改的就是index.jsp,我们看一下里面的代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
My JSP 'index.jsp' starting page
<%String sessid = request.getSession().getId();%>
sessionid=<%=sessid%>
This is my JSP page 111111.
仔细观察一下运行结果,可以发现sessionid都是一致的,这也就很好的说明了我们成功的在这三个Tomcat之间共享了session。
简单记录一下通过Memcached来实现session共享的全过程,希望对遇到同样问题的朋友有所帮助,The End。
当前题目:LinuxCentOS7下通过Memcached实现Session共享
文章出自:http://www.csdahua.cn/qtweb/news33/267633.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网