`
dengyin2000
  • 浏览: 1228587 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Terracotta和Tomcat建立ACTIVE-PASSIVE模式的集群。

阅读更多
如果大家还没听过Terracotta的话, 请参考http://www.iteye.com/topic/88466这篇文章了解下使用Terracotta的好处。

下载地址:http://www.terracotta.org/confluence/display/orgsite/Download

大家可以通过这个http://www.terracotta.org/confluence/display/docs1/Sessions+Quick+Start知道如果操作Terracotta的tomcat cluster地址。

演示中运行了一个Terracotta server, 两个Tomcat server[9081, 9082]。 演示中没有使用如果Build Terracotta ACTIVE-PASSIVE (多个Terracotta server 让Terracotta server也能failover)。


ok。 我先介绍下我的环境。 我共用了2台pc。  使用的是windows环境。

pc1  ip:192.168.1.119  host name:ydeng
pc2  ip:192.168.1.104  host name:icmwei


我会在pc1,pc2 上分别起一个Terracotta server, 和2个tomcat server。 用 %TERRACOTTA_HOME%作为terracotta的安装地址。


1. 首先打开%TERRACOTTA_HOME%\samples\tc-config.xml 这个文件。修改后的请看如下:


xml 代码
  1. <servers>  
  2.   <server host="192.168.1.119" name="ydeng">  
  3.     <data>data/server-data</data>  
  4.     <logs>logs/server-logs</logs>  
  5.     <l2-group-port>9530</l2-group-port>  
  6.   </server>  
  7.   <server host="192.168.1.104" name="icmwei">  
  8.     <data>data/server-data</data>  
  9.     <logs>logs/server-logs</logs>  
  10.     <l2-group-port>9530</l2-group-port>  
  11.   </server>      
  12.   <ha>  
  13.     <mode>networked-active-passive</mode>  
  14.     <networked-active-passive>  
  15.         <election-time>5</election-time>  
  16.     </networked-active-passive>  
  17.   </ha>  
  18. </servers>  


我只列出了 servers 这个节点。你需要在两台机子上都修改。 你可以在%TERRACOTTA_HOME%\samples\这个目录下看到有个start-demo-server.bat bat文件(sh文件for linux)。 这个就是我们用来启动terracotta server的脚本。 启动时他会使用我们修改的tc-config.xml这个文件。

2. 修改%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5\tc- config.xml这个文件, 其实跟上面的修改是一样的。都是把servers 节点修改成步骤1的样子。 修改如下:

xml 代码
  1. ....................  省略    
  2. <servers>  
  3.     <server host="192.168.1.119" name="denny">  
  4.       <data>data/server-data</data>  
  5.       <logs>logs/server-logs</logs>  
  6.       <l2-group-port>9530</l2-group-port>  
  7.     </server>  
  8.     <server host="192.168.1.104" name="wenwei">  
  9.       <data>data/server-data</data>  
  10.       <logs>logs/server-logs</logs>  
  11.       <l2-group-port>9530</l2-group-port>  
  12.     </server>      
  13.     <ha>  
  14.         <mode>networked-active-passive</mode>  
  15.         <networked-active-passive>  
  16.             <election-time>5</election-time>  
  17.         </networked-active-passive>  
  18.     </ha>  
  19.   </servers>  
  20.   <clients>  
  21.     <logs>logs/client-logs/%(webserver.log.name)</logs>  
  22.     <modules>  
  23.       <module name="clustered-apache-struts-1.1" version="1.1.0"/>  
  24.     </modules>  
  25.   </clients>  
  26.   
  27. ....................  省略  


Ok, 所有的配置都完成了。  让我们分别在两台机子上启动Terracotta server。  运行 %TERRACOTTA_HOME%\samples\start-demo-server.bat。 然后我们再转到%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5目 录。运行start.bat 9081 这样我们就启动了目录9081中的tomcat,端口也是9081。 再运行start.bat 9082启动另外一个tomcat实例。 假设现在的active的Terracotta server在ydeng这台机子上。在这台机子上打开Administrator Console。 路径是 开始--》程序--》Terracotta2.4.3--》Administrator Console。 打开之后你会开到如下图所示的界面。

Admin console

Ok. 这样tomcat cluster就算是跑起来了。 要注意的是Terrcatta sever的active-passive的配置有两种方式。 一种是使用共享目录,另外一种是通过network的方式。  我这里使用的是后者。 各自的优缺点请看文章最后提供的参考资料。

最后我们测试下terrcatta server 的failover。 和 failback。  我们ctrol + c掉active的那个terracotta server。 我们再打开icmwei的那台机子的administator conosle。 如下图:




红色应该表示ydeng这台机子上的terracotta server已经down掉了。 而且4个tomcat都已经连到192.168.1.104这个server上了。 他也变成active了(绿色)。  你也可以再试试把ydeng上面的terracotta server再重启。 你会发现ydeng会变成蓝色了。 说明ydeng failback了。



参考:http://www.terracotta.org/confluence/display/docs1/Configuring+a+Terracotta+Server+Cluster
分享到:
评论
5 楼 rainsf 2008-07-29  
renavatior 写道
"运行start.bat 9081 这样我们就启动了目录9081中的tomcat,端口也是9081"
我在命令行切换到“%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5”所在的目录然后打入“start.bat 9081 ”,可是我只看到黑屏一闪而过,这个是怎么启动的啊 ?
我是一个新手


需要设置环境变量,如:
set CATALINA_HOME=%TC_INSTALL_DIR%\vendors\tomcat5.5
4 楼 renavatior 2008-07-15  
"运行start.bat 9081 这样我们就启动了目录9081中的tomcat,端口也是9081"
我在命令行切换到“%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5”所在的目录然后打入“start.bat 9081 ”,可是我只看到黑屏一闪而过,这个是怎么启动的啊 ?
我是一个新手
3 楼 dengyin2000 2007-12-15  
apollogter 写道
楼主,我看了你的文章刚刚开始学习terracotta,有问题想请教你一下:
  
    关于tomcat:

        我安装多个tomcat然后分别启动这多个tomcat和安装一个tomcat然后运行多个tomcat实例 有什么区别??


基本上没有区别。
2 楼 apollogter 2007-12-15  
楼主,我看了你的文章刚刚开始学习terracotta,有问题想请教你一下:
  
    关于tomcat:

        我安装多个tomcat然后分别启动这多个tomcat和安装一个tomcat然后运行多个tomcat实例 有什么区别??
1 楼 dengyin2000 2007-09-24  
今天准备在JBoss中测试Terracotta的Cluster。<br/>
<br/>
首先建立一个.bat文件。如下:<br/>
<br/>
runWithTerrcattaServer.bat<br/>
<br/>
<div class='code_title'>js 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-c' start='1'>
    <li class='alt'><span><span>setlocal  </span></span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>set TC_CONFIG_PATH=D:\Working\Terracotta\terracotta-2.4.3\tools\sessions\configurator-sandbox\tomcat5.5\tc-config.xml  </span></li>
    <li class=''><span>call <span class='string'>"%TC_INSTALL_DIR%\bin\dso-env.bat"</span><span> -q  </span></span></li>
    <li class='alt'><span>  </span></li>
    <li class=''><span>set JAVA_OPTS=%TC_JAVA_OPTS% %JAVA_OPTS%  </span></li>
    <li class='alt'><span>call %JBOSS_HOME%\bin\run.bat  </span></li>
    <li class=''><span>  </span></li>
    <li class='alt'><span>endlocal  </span></li>
</ol>
</div>
<br/>
从这段.bat中我们知道需要设置<span><span class='string'>TC_INSTALL_DIR, </span></span><span>JBOSS_HOME环境变量。 最好是把JAVA_HOME也设置一下。 第三行设置Terracotta的config文件。 第四行是调用terracotta里面的设置java 启动命令, 你可以从打印出来的信息中看到terracotta把java boot class 换掉了。 这就是意味着是通过Terrcotta代理启动JBOss的。 第6行很重要,把第四行命令中生成的替换boot class append到java命令中。 下面这串就是启动JBOSS的java命令参数了。 </span><br/>
<br/>
<div class='code_title'>js 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-c' start='1'>
    <li class='alt'><span><span>-Xbootclasspath/p:</span><span class='string'>"D:\Working\Terracotta\terracotta-2.4.3\bin\..\li </span> </span></li>
    <li class=''><span><span class='string'>b\dso-boot\dso-boot-hotspot_win32_160_02.jar"</span><span> -Dtc.install-root=</span><span class='string'>"D:\Working\Terr </span> </span></li>
    <li class='alt'><span><span class='string'>acotta\terracotta-2.4.3\bin\.."</span><span> -Dtc.config=</span><span class='string'>"D:\Working\Terracotta\terracotta-2. </span> </span></li>
    <li class=''><span><span class='string'>4.3\tools\sessions\configurator-sandbox\tomcat5.5\tc-config.xml"</span><span>  -Dprogram.name    </span></span></li>
    <li class='alt'><span>=run.bat -server -Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun    </span></li>
    <li class=''><span>.rmi.dgc.server.gcInterval=3600000  </span></li>
</ol>
</div>
<br/>
需要注意的是现在的Terracotta并不支持所有的JBOSS. 一下是支持的server列表。<br/>
<br/>
<h2>Containers</h2>
<p>Apache Tomcat 5.5.20<br/>
Apache Tomcat 5.0.28<br/>
BEA WebLogic 8.1 sp6<br/>
BEA Weblogic 8.1 sp5<br/>
BEA Weblogic 9.2<br/>
Geronimo1.0.x &amp; 1.1.x<br/>
WebSphere CE 1.1<br/>
Websphere AS 6.1.0.7<br/>
JBoss 3.2.8<br/>
JBoss AS 4.0.5</p>
我在jboss-4.2.1.GA下试过, JBOSS启动不成功。 抛出如下错误。 <br/>
<br/>
<div class='code_title'>java 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-j' start='1'>
    <li class='alt'><span><span class='number'>2007</span><span>-</span><span class='number'>09</span><span>-</span><span class='number'>24</span><span> </span><span class='number'>17</span><span>:</span><span class='number'>49</span><span>:</span><span class='number'>23</span><span>,</span><span class='number'>546</span><span> DEBUG [org.jboss.mx.loading.RepositoryClassLoader] Added url: file:D:\Working\Terracotta\terracotta-</span><span class='number'>2.4</span><span>.</span><span class='number'>3</span><span>\bin\..\lib\session\tc-session.jar, to ucl: org.jboss.mx.loading.UnifiedClassLoader3</span><span class='annotation'>@44e72b</span><span>{ url=file:/D:/Working/jboss-</span><span class='number'>4.2</span><span>.</span><span class='number'>1</span><span>.GA/server/</span><span class='keyword'>default</span><span>/deploy/jboss-web.deployer/ ,addedOrder=</span><span class='number'>6</span><span>}  </span></span></li>
    <li class=''><span><span class='number'>2007</span><span>-</span><span class='number'>09</span><span>-</span><span class='number'>24</span><span> </span><span class='number'>17</span><span>:</span><span class='number'>49</span><span>:</span><span class='number'>24</span><span>,</span><span class='number'>781</span><span> ERROR [org.apache.commons.digester.Digester] Begin event threw error  </span></span></li>
    <li class='alt'><span>java.lang.AssertionError: Cannot determine tomcat version from JBossWeb/<span class='number'>2.0</span><span>.</span><span class='number'>0</span><span>.GA  </span></span></li>
</ol>
</div>
<br/>
这个应该是Terracotta出的错。 <span><span>D:\Working\Terracotta\terracotta-</span><span class='number'>2.4</span><span>.</span><span class='number'>3</span><span>\bin\..\lib\session\tc-session.jar。  呵呵。 <br/>
<br/>
</span></span>

相关推荐

    terracotta-toolkit-1.3-runtime-3.2.0.jar

    terracotta-toolkit-1.3-runtime-3.2.0.jar 集群实现JAR

    terracotta集群tomcat步骤

    在这个例子中,模式被设置为`networked-active-passive`,这意味着有一个活动服务器和一个备用服务器,当活动服务器出现问题时,备用服务器能够在短时间内接管服务,确保业务连续性。`&lt;election-time&gt;`标签设置了...

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

    为了便于使用Terracotta搭建Tomcat集群,Terracotta提供了一个名为“tim-tomcat”的插件。以下为搭建过程的具体步骤: 1. **准备环境** - **Apache Tomcat**:推荐使用Terracotta官方支持的版本,如Apache Tomcat...

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

    总结,使用 Terracotta 与 Tomcat 集群相结合,可以创建出一个既具有高扩展性又具备高可用性的 Web 应用平台,解决了传统 session 管理方式的诸多问题。在实际部署中,开发者应根据具体业务需求和资源条件,合理选择...

    terracotta-ee-4.1.2.jar,terracotta-license.key

    Terracotta是一款强大的...总的来说,Terracotta-ee-4.1.2.jar和terracotta-license.key是构建高效、可靠的Java分布式系统的关键组成部分,它们共同为Windows平台上的企业级应用提供了强大的数据共享和集群管理能力。

    terracotta-eclipse-plugin-3.7.7(terracotta的Eclipse插件)

    terracotta-eclipse-plugin-3.7.7-2013-08-19_16-03-48.tar(terracotta的Eclipse插件) 发现官网挺卡的,有时候下不了,先传上来吧,供国内用户下载,这个算最新的吧。2014-02-17下载的。

    terracotta-3.7.7-2013-08-19_16-03-48-installer(jar安装包)

    terracotta-3.7.7-2013-08-19_16-03-48-installer(jar安装包) 官方网站卡得要死,有时候不一定能下载,把最近自己用的,算最新版吧,提供在国内网站下载吧。 2014-02-17下载的。

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

    Apache 2.2、mod_JK、Tomcat 7 和 Terracotta 3.7 是构建高可用性和可伸缩性Web应用集群的关键组件。这个集群解决方案旨在通过将负载分散到多个服务器上,提高应用程序的性能和稳定性。下面将详细阐述这些组件以及...

    ehcache-terracotta代码配置

    &lt;artifactId&gt;terracotta-toolkit-runtime 您的版本号 ``` 4. 配置Terracotta服务器 在服务器上安装并启动Terracotta服务器,确保所有参与集群的节点都可以连接到该服务器。配置文件通常位于`$TERRACOTTA_HOME/...

    terracotta-3.7.7-installer.jar

    terracotta-3.7.7-installer.jar

    terracotta 集群设置说明(中文)

    记载了terracotta如何与tomcat、jetty等服务器的集群,解释了tc-config.xml中各个配置的作用

    使用terracotta进行web session 同步

    【标题】:“使用Terracotta进行Web Session同步” 在分布式Web应用环境中,用户会话(Session)的共享和同步是一个重要的挑战。Terracotta是一款开源软件,它提供了一种高效且可靠的解决方案,允许在集群环境中...

    Terracotta

    Terracotta的存储层次结构包括MemoryStore、Off-HeapStore和DiskStore,每种存储层都有其特定的配置和使用场景。例如,MemoryStore用于纯内存存储,而Off-HeapStore则用于直接内存管理,避免了Java堆内存的限制,...

    ehcache2.6.6缓存相关jar

    做ehcache分布式缓存用的! ehcache-2.6.6.jar和terracotta-toolkit-1.6-runtime-5.5.0.jar 主要是给自己写的博客中做一个下载资源链接!

    terracotta-3.7.7.tar.gz

    “terracotta-3.7.7.tar.gz”提供了实现Tomcat session集群的解决方案,通过Terracotta的技术,可以轻松地在多台Tomcat服务器间共享session数据,提高系统的可扩展性和可靠性。安装与配置过程虽然涉及多个步骤,但...

    terracotta插件完整版

    terracotta完整开发插件,可以作为eclipse的插件,也可以单独使用,功能齐全;

    terracotta-ee-3.5.2

    terracotta-ee-3.5.2破解版

Global site tag (gtag.js) - Google Analytics