博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Terracotta+Tomcat+nginx实现session的共享
阅读量:5959 次
发布时间:2019-06-19

本文共 2884 字,大约阅读时间需要 9 分钟。

环境准备:(Nginx,tomcat的安装部署本例不赘述。)

         192.168.1.13     nginx

         192.168.1.225    tomcat7terracotta

         192.168.1.226    tomcat7

   

部署terracotta+tomcat集群:

 

一:安装java程序至系统,配置java环境。

# vi /etc/profileexport JAVA_HOME=/usr/local/javaexport PATH=/usr/local/java/bin:$PATH

二:部署单terracotta服务。

下载terracotta

本例使用terracotta3.7.7版本,每个版本的部署配置略有不同。

# tar -zxvf terracotta-3.7.7.tar.gz# mv terracotta-3.7.7.tar.gz /usr/local/terracotta 开启terracotta服务:# /usr/local/terracotta/bin/start-tc-server.sh &

 

三:整合Tomcat,使之成为terracotta的客户端。

复制terracotta的相关jar包到Tomcatlib目录下:(tomcat家目录以$TOMCAT_HOME替代)

# cp /usr/local/terracotta/common/terracotta-toolkit-1.6-runtime-5.7.0.jar $TOMCAT_HOME/lib/# cp /usr/local/terracotta/sessions/terracotta-session-1.3.7.jar $TOMCAT_HOME/lib

修改context.xml文件,添加terracotta连接配置:

# vi $TOMCAT_HOME/conf/context.xml

集群中的Tomcat配置都基本如上。

 

 

四:配置nginx,使用loadblance方式访问后端tomcat

# vi/usr/local/nginx/conf/nginxupstream  session{   server 192.168.1.225:8080 weight=5 max_fails=2 fail_timeout=30s;   server 192.168.1.226:8080 weight=5 max_fails=2 fail_timeout=30s;} server {    listen 80 default_server;    server_name 0.0.0.0;     location /session    {     proxy_passhttp://session;    }}

 

 

五:开启tomcatnginx

13: # /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf225:# $TOMCAT_HOME/bin/startup.sh226:# $TOMCAT_HOME/bin/startup.sh

 

六:session测试。

在所有tomcatsession配置目录下,新建session测试页面。

#vi test.jsp<%@ pagesession="true" %>    test Host1
<%    out.println("SessionId:"+request.getSession().getId()+"
");    out.println("CreationTime:"+request.getSession().getCreationTime());     Stringname=(String)session.getAttribute("name");    if(name==null||name.equals("")){        session.setAttribute("name","HelloHost1!"); //Host2就写为"Hello Host2!"       out.println(session.getAttribute("name"));    }else{        out.println(name);    }%>

使用nginx跳转访问tomcattest.jsp页面,效果如下:

 

刷新页面多次,可以清楚看到页面是在两个tomcat之间互相跳转。SessionId除了最后的标识改变外,其余的都保持一直,且内容value一直都是HelloHost2。证明了页面的session id 与内容都保持了一直,session共享是生效的。

   

另外,还可以在terracotta服务器上开启监控工具,来查看集群状态:

#/usr/local/terracotta/bin/dev-console.sh

Terracotta双机配置:

部署两台Terracotta服务器,在Terracotta目录下,新建tc-config.xml

#vi tc-config.xml
  
    
    
      
%(user.home)/terracotta/server-data     
%(user.home)/terracotta/server-logs
        
    
     
%(user.home)/terracotta/server-data     
%(user.home)/terracotta/server-logs
    
    
       
networked-active-passive
       
              
5
       
    
  
  
  
    
%(user.home)/terracotta/client-logs
  

 

然后分别用该配置文件,开启terratocca服务。

225

#/bin/start-tc-server.sh-f /usr/local/terracotta/tc-config.xml -n Server1 &

226

#/bin/start-tc-server.sh-f /usr/local/terracotta/tc-config.xml -n Server2 &

转载地址:http://elkax.baihongyu.com/

你可能感兴趣的文章
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
推荐JS插件:imagesLoaded,监测图片加载情况并提供相应的事件(加载成功/失败)...
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>
新零售讲堂之时代下的传统零售业,何去何从?
查看>>
c++读取和写入TXT文件的整理
查看>>
深入动态人脸识别小场景应用,2019年或将迎来爆发期
查看>>
linux安全问答(1)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
解读最具O2O属性—哈根达斯微信企业号的成功之道
查看>>
Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析
查看>>
Server-01 How to Find the Remote Desktop Port
查看>>
Java--接口、抽象与继承
查看>>
通过IP判断登录地址
查看>>
Oracle闪回技术
查看>>
利用单壁路由实现vlan间路由
查看>>