云计算Tengine学习-session一致性会话保持(memcached缓存数据库),继上次提供了一种不可靠发解决方法,这次使用一种可靠性的memecached缓存数据库来解决session一致性问题,原理主要是,memcached将tomcat的session集中管理,即服务器在分发请求到了一台机器的时候,会先去session缓存数据库查看是否有该用户的session,如果有则取出,否则新建一个。
操作如下:
将memcached的jar包拷贝到tomcat的lib下
为了方便测试,将tomcat1和tomcat2的首页(文件在/tomcat安装目录/webapps/ROOT/index.jsp)修改成:
修改tomcat1和tomcat2的server.xml文件(/opt/apache-tomcat-7.0.61/conf/server.xml),方便查看session是哪个tomcat创建的:
在tomcat1和tomcat2的context.xml(在context上下文中配置)文件配置:
红色线为安装memcached服务器的IP
还要在nginx中配置反向代理,这样才能看出效果
从红色线看出,分别转发到192.168.17.3:8080和192.168.17.4:8080的tomcat服务器上
启动memcached和重启tomcat,当然还要关闭防火墙
测试,访问nginx服务器:
可以看出,session由tomcat2创建,当跳转到tomcat1服务器时,session还是保持不变,从而解决了session一致性问题。