Terracotta+Tomcat+nginx实现session的共享
环境准备:(Nginx,tomcat的安装部署本例不赘述。)
192.168.1.13 nginx
192.168.1.225 tomcat7,terracotta
192.168.1.226 tomcat7
部署terracotta+tomcat集群:
一:安装java程序至系统,配置java环境。
# vi /etc/profile export JAVA_HOME=/usr/local/java export PATH=/usr/local/java/bin:$PATH
二:部署单terracotta服务。
下载terracotta:http://www.terracotta.org/downloads
本例使用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包到Tomcat的lib目录下:(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 <ValveclassName="org.terracotta.session.TerracottaTomcat70xSessionValve"tcConfigUrl="192.168.1.225:9510"/>
集群中的Tomcat配置都基本如上。
四:配置nginx,使用loadblance方式访问后端tomcat。
# vi/usr/local/nginx/conf/nginx upstream 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; } }
五:开启tomcat、nginx。
13: # /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 225:# $TOMCAT_HOME/bin/startup.sh 226:# $TOMCAT_HOME/bin/startup.sh
六:session测试。
在所有tomcat的session配置目录下,新建session测试页面。
#vi test.jsp <%@ pagesession="true" %> <html> <head> <title>test Host1</title><!-- //Host2就写为"test Host1" 以示区分 --> </head> <body> <% out.println("SessionId:"+request.getSession().getId()+"<br />"); 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); } %> </body> </html>
使用nginx跳转访问tomcat的test.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 <?xmlversion="1.0" encoding="UTF-8"?> <!--All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved. --> <tc:tc-config xsi:schemaLocation="http://www.terracotta.org/schema/terracotta-5.xsd" xmlns:tc="http://www.terracotta.org/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <servers> <!-- Sets where the Terracotta servercan be found. Replace the value of host with the server's IP address.--> <server host="192.168.1.225" name="Server1"> <data>%(user.home)/terracotta/server-data</data> <logs>%(user.home)/terracotta/server-logs</logs> </server> <!-- If using a standby Terracottaserver, also referred to as an ACTIVE-PASSIVEconfiguration, add the second server here. --> <server host="192.168.1.226" name="Server2"> <data>%(user.home)/terracotta/server-data</data> <logs>%(user.home)/terracotta/server-logs</logs> </server> <!--If using more than one server, add an <ha> section. --> <ha> <mode>networked-active-passive</mode> <networked-active-passive> <election-time>5</election-time> </networked-active-passive> </ha> </servers> <!-- Sets where the generated client logsare saved on clients. --> <clients> <logs>%(user.home)/terracotta/client-logs</logs> </clients> </tc:tc-config>
然后分别用该配置文件,开启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 &

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
快速笔记02-MySQL主从复制原理半同步操作步骤及原理
==========================================================一:MySQL主从复制规划 主库:(MySQLmaster)IP:10.0.0.52PROT:3306从库1:(MySQLslave)IP:10.0.0.52PORT:3307从库2:(MySQLslave)IP:10.0.0.52PORT:3308 ==========================================================二:检查环境(1)检查MySQL数据库多实例是否启动 netstat-lntup|grep330tcp000.0.0.0:33060.0.0.0:*LISTEN20434/mysqldtcp000.0.0.0:33070.0.0.0:*LISTEN15120/mysqldtcp000.0.0.0:33080.0.0.0:*LISTEN19578/mysqld (2)开启MySQL主库的Binlog功能 greplog-bin/data/3306/my.cnf (3)设置server-id,此处ID不可以相同否则...
- 下一篇
远程桌面排错(已解决)
最近遇到了一个比较棘手的问题,用户远程桌面无法连接,我的博文中之前也写到了一篇远程桌面排错,但是这次的和之前的大不相同 = = 原因排查步骤 1)首先当然是查看报错,这个是我自己机器上截图的,报错信息都一样 2)首先查看服务器是否开启了远程访问 3)查看目标是否可以ping通 4)查看服务是否正常启动 5)如果要正常远程到目标必须可以telnet到目标的远程端口,默认为3389,这个端口不通,我们之前已经将防火墙关闭了 6)本机上telnet 127.0.0.1 3389,这么做的话可以排除外界因素的干扰,当然还是不通 7)然后我在本机使用netstat -ano 命令查看监听的端口是否有3389,并没有找到3389端口,5800和5900端口是VNC服务器的端口,也是一款远程软件,还好有它不然都没法排错 Proto Local Address Foreign Address State PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 924 TCP 0.0.0.0:445 0...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题