`
yaoxinghuo
  • 浏览: 30200 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Terracotta集群Tomcat实现Session同步

阅读更多

作者:姚星火 个人主页:http://fantasyplace.googlepages.com/index.html

Setting up a Tomcat Web Cluster

在每一台机器上安装Terracotta 

生成boot jar 

可能需要生成Boot jar。脚本文件: make-boot-jar.sh  [-o /usr/local/terracotta-2.4.0/lib/dso-boot] -f /tmp/tc-config.xml

 

启动Terracotta Server

准备配置文件/tmp/tc-config.xml:

<!---->
<tc:tc-config xsi:schemalocation="&amp;lt;a goog_ds_charindex=" href="http://www.terracotta.org/schema/terracotta-4.xsd">http://www.terracotta.org/schema/terracotta-4.xsd" xmlns:tc="http://www.terracotta.org/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <!---->
  <servers></servers>
    <server host="%i" name="sample"></server>
      <data></data>data/server-data
      <logs></logs>logs/server-logs
   
 
  <!---->
  <clients></clients>
    <logs></logs>logs/client-logs/%(webserver.log.name)
    <modules></modules>
      <module name="clustered-apache-struts-1.1" version="1.1.0"></module>
   
 
  <application></application>
    <dso></dso>
      <!---->
      <instrumented-classes></instrumented-classes>
        <!---->
        <include></include>
          <class-expression></class-expression>*..*
       
        <!---->
        <exclude></exclude>org.apache.coyote..*
        <exclude></exclude>org.apache.catalina..*
        <exclude></exclude>org.apache.jasper..*
        <exclude></exclude>org.apache.tomcat..*
     
      <!---->
      <web-applications></web-applications>
        <web-application></web-application>Cart
     
      <!----></tc:tc-config>
        <roots></roots>
            <root></root>
              <field-name></field-name>demo.townsend.service.ProductCatalog.catalog
              <root-name></root-name>ProductCatalog
            
        
   
 
 
WebSphere6.1中的设置:
...
<clients></clients>
    <logs></logs>logs/client-logs/%(webserver.log.name)
    <modules></modules>
      <module name="clustered-apache-struts-1.1" version="1.1.0"></module>
      <module name="clustered-websphere-6.1.0.7" version="1.0.0"></module>
   
 
...
        <exclude></exclude>com.ibm..*
        <exclude></exclude>org.eclipse..*
        <exclude></exclude>com.ddtek..*
        <exclude></exclude>tcl.lang..*
        <exclude></exclude>org.omg..*
        <exclude></exclude>sunlabs.brazil..*
        <exclude></exclude>com.sun.mail..*
...
 
WebLogic8.1 中的设置:
...
        <exclude></exclude>weblogic..*
        <exclude></exclude>com.rsa..*
...
[orion@tcserver ~]$ terracotta/bin/start-tc-server.sh -f /tmp/tc-config.xml &
[1] 13545
[orion@tcserver ~]$ 2007-06-07 18:25:57,850 INFO - Terracotta version 2.3.0,
 as of 20070427-110443 (Revision 2739 by cruise@rh4mo0 from 2.3)
2007-06-07 18:25:59,875 INFO - Configuration loaded from the file at '/home/orion/tc-config.xml'.
2007-06-07 18:26:00,387 INFO - Log file: '/home/orion/logs/server-logs/terracotta-server.log'.
2007-06-07 18:26:01,962 INFO - JMX Server started. Authentication OFF -
 Available at URL[service:jmx:rmi:///jndi/rmi://localhost:9520/jmxrmi]
2007-06-07 18:26:03,706 INFO - Terracotta Server has started up as
 ACTIVE node on port 9510 successfully, and is now ready for work.

[orion@tcserver ~]$
 

启动Tomcat Servers

start-tomcat-dso.sh:(可能运行前要export一些环境变量)
TERRACOTTA_SERVER=10.22.23.31
TC_CONFIG_PATH="${TERRACOTTA_SERVER}:9510"
 
. $TC_HOME/bin/dso-env.sh -q
 
export JAVA_OPTS="${TC_JAVA_OPTS}"
$CATALINA_HOME/bin/startup.sh

或者如下设置JAVA_OPTS环境变量,启动

[orion@domU-12-31-35-00-31-63 ~]$ . set-tc-env.sh 
[orion@domU-12-31-35-00-31-63 ~]$ echo $JAVA_OPTS
-Xbootclasspath/p:/home/orion/terracotta/lib/dso-boot/dso-boot-hotspot_linux_150_12.jar
 -Dtc.install-root=/home/orion/terracotta -Dtc.config=tcserver:9510
[orion@domU-12-31-35-00-31-63 ~]$ tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /home/orion/tomcat
Using CATALINA_HOME:   /home/orion/tomcat
Using CATALINA_TMPDIR: /home/orion/tomcat/temp
Using JRE_HOME:       /home/orion/java
[orion@domU-12-31-35-00-31-63 ~]$ 

在catalina.out log文件中应该要看到类似的信息,如下,说明TOMCAT启动时,Terracotta起作用;在Terracotta Server端如果打开/usr/local/terracotta-2.4.0/bin/admin.sh(AdminConsole)也会显示有App Server连上的信息:

2007-06-07 18:29:23,208 INFO - Terracotta version 2.3.0, as of 20070427-110443 (Revision 2739 by cruise
@rh4mo0 from 2.3)
2007-06-07 18:29:24,451 INFO - Configuration loaded from the server at 'tcserver:9510'.

Configure and Start the Load Balancer (实际用IBM EDGE)

In a production environment, you should use a production quality hardware or software load balancer. For testing purposes, Terracotta comes with a simple TCP proxy that may be used like a load balancer. You should not use this TCP proxy in a production environment.

Here's a sample script to start the TCP proxy:

TC_INSTALL_DIR=

exec "${JAVA_HOME}/bin/java" \
  -Dtc.install-root="${TC_INSTALL_DIR}" -Ddaemon=true \
  ${JAVA_OPTS} \\
  -cp "${TC_INSTALL_DIR}/lib/tc.jar" \
   com.tc.net.proxy.TCPProxy <port to="" listen=""></port> <web host=""></web>:<port></port>,<web host=""></web>:<port></port>,<web host=""></web>:<port></port>

Here's a version of the script with the terracotta installation directory and the web hosts filled in:

[orion@loadbalancer ~]$ cat bin/start-loadbalancer.sh 
TC_INSTALL_DIR=/home/orion/terracotta

exec "${JAVA_HOME}/bin/java" \
  -Dtc.install-root="${TC_INSTALL_DIR}" -Ddaemon=true \
  ${JAVA_OPTS} \
  -cp "${TC_INSTALL_DIR}/lib/tc.jar" \
   com.tc.net.proxy.TCPProxy 8080 web01:8080,web02:8080,web03:8080

To run the TCP proxy, execute the script on the load balancer machine:

[orion@loadbalancer ~]$ bin/start-loadbalancer.sh  
Thu Jun 07 18:56:02 EDT 2007: Starting listener on port 8080, proxying to [web01/10.255.54.145:8080],
 [web02/10.255.54.97:8080], [web03/10.255.54.146:8080] with 0ms delay

  

评论

相关推荐

    Terracotta+tomcat集群配置详细说明(写了一晚上。。)

    本文将深入探讨 Terracotta 与 Tomcat 集群的配置,以及如何利用 Terracotta 实现高效、可靠的 session 共享。 1. ** Terracotta 基本原理** Terracotta 是一款开源软件,它提供了一种在 Java 应用程序之间实时...

    通过_Terracotta实现基于Tomcat的Web应用集群

    具体到session同步方面,Terracotta可以看作是对Tomcat自带的session复制机制的一种优化,既避免了对数据库的依赖,又能够有效减少网络通信压力,实现负载均衡和灾难恢复的目标。 根据测试结果,在采用Terracotta...

    使用terracotta进行web session 同步

    在`server.xml`配置文件中,添加`&lt;Manager className="org.terracotta.session.tomcat.Tomcat TerracottaSessionManager" /&gt;`,以启用Terracotta的Session同步。 3. **配置应用代码** 在你的Web应用中,无需对代码...

    使用terracotta实现session共享的证实实验

    ### 使用Terracotta实现Session共享的关键知识点 #### Terracotta简介 Terracotta是一种开源的分布式内存技术,它提供了一种简单有效的方式来管理和共享应用程序的数据。对于Java应用程序而言,Terracotta可以实现...

    apache2.2+mod_JK+Tomcat7+Terracotta3.7 集群(重要)

    在Tomcat集群中,Terracotta可以实现session复制和共享,确保用户在集群中的任意节点之间切换时,其会话状态保持一致,避免了session丢失的问题。 集群配置文件tc-config.xml是Terracotta的配置文件,用于定义集群...

    分布式服务集群下实现session共享解决方案.docx

    总的来说,分布式服务集群下的session共享可以通过多种途径实现,每种方法都有其优缺点。选择合适的解决方案需要根据业务需求、性能要求以及容错能力等因素综合考虑。在实际应用中,应充分评估并测试各种方案,以...

    集群中几种session同步解决方案的比较

    ### 集群中几种session同步解决方案的比较 在分布式系统和集群环境中,session管理是一项关键技术,它确保了用户在不同服务器之间的交互能够保持一致性。本文将深入探讨六种常用的session共享方法,包括它们的工作...

    Terracotta学习文档

    通过将 session 复制和负载均衡功能集成到 Tomcat 集群中, Terracotta 提供了一种无需数据库依赖的解决方案,能够在多个服务器之间实现数据同步,同时保持较低的网络压力和资源消耗。 2. **基本原理** Terracotta...

    terracotta-3.7.7.tar.gz

    5. **启动Tomcat**:配置完成后,启动Tomcat服务器,此时Tomcat会与Terracotta集群建立连接。 6. **监控与管理**:通过Terracotta提供的管理界面(通常在8000端口)可以监控和管理整个集群的状态,包括session的数量...

    分布式session方案

    Terracotta 实现 Session 复制是指 Terracotta 的基本原理是对于集群间共享的数据,当在一个节点发生变化的时候,Terracotta 只把变化的部分发送给 Terracotta。 分布式 Session 方案的选择取决于系统的需求和要求...

    采用apache实现tomcat的集群配置方案[文].pdf

    本文档详细介绍了如何通过Apache作为负载均衡器来实现Tomcat集群的搭建,并利用Terracotta实现Ehcache的集群配置,以增强系统的故障恢复能力和数据共享功能。 #### 二、环境准备 在开始配置之前,需要准备以下软件...

    负载均衡nginx+tomcat+terracatta+nfs+mysql

    Terracotta是一个开源的Java集群框架,它允许在多个Tomcat服务器之间共享session数据,确保用户在集群中的任意节点切换时,其会话状态仍能保持连续。Terracotta通过监听和同步session对象,解决了跨服务器的会话复制...

    apache+tomcat分布式集群.rar

    构建 Apache + Tomcat 分布式集群是一项复杂的工作,涉及到网络配置、服务器资源分配、session 共享等多个方面。通过合理的配置和管理,可以大大提高系统的稳定性和可扩展性。记住,始终要关注性能优化、安全防护...

    Web Sessions Installation .docx

    配置完成后,Web应用程序应该能够通过Terracotta集群来管理其会话状态,这意味着会话数据可以在多台服务器之间无缝同步,提高了系统的可用性和可伸缩性。然而,确保正确配置和测试环境是至关重要的,以避免任何潜在...

    Java-Cluster.rar_cluster_java cluster

    7. **Java中间件**:例如Tomcat、Jetty等Web服务器支持集群配置,通过共享session和请求分发,实现集群部署。 8. **开源框架**:例如Apache Mesos、Hazelcast、Terracotta等,它们提供了一套完整的解决方案,简化了...

    Jetty中文手册

    基于Terracota的Session集群配置教程 Web Frameworks DWR MyFaces JSF Reference Implementation Jakarta Slide GWT Jetspeed2 ICEfaces 其他 Atomikos Transaction Manager Java Open Transaction Manager (JOTM) ...

Global site tag (gtag.js) - Google Analytics