2007-09-21
使用Terracotta和Tomcat建立ACTIVE-PASSIVE模式的集群。
关键字: terracotta, cluster
如果大家还没听过Terracotta的话, 请参考http://www.javaeye.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 这个文件。修改后的请看如下:
我只列出了 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的样子。 修改如下:
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。 打开之后你会开到如下图所示的界面。

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
下载地址: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 代码
- <servers>
- <server host="192.168.1.119" name="ydeng">
- <data>data/server-data</data>
- <logs>logs/server-logs</logs>
- <l2-group-port>9530</l2-group-port>
- </server>
- <server host="192.168.1.104" name="icmwei">
- <data>data/server-data</data>
- <logs>logs/server-logs</logs>
- <l2-group-port>9530</l2-group-port>
- </server>
- <ha>
- <mode>networked-active-passive</mode>
- <networked-active-passive>
- <election-time>5</election-time>
- </networked-active-passive>
- </ha>
- </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 代码
- .................... 省略
- <servers>
- <server host="192.168.1.119" name="denny">
- <data>data/server-data</data>
- <logs>logs/server-logs</logs>
- <l2-group-port>9530</l2-group-port>
- </server>
- <server host="192.168.1.104" name="wenwei">
- <data>data/server-data</data>
- <logs>logs/server-logs</logs>
- <l2-group-port>9530</l2-group-port>
- </server>
- <ha>
- <mode>networked-active-passive</mode>
- <networked-active-passive>
- <election-time>5</election-time>
- </networked-active-passive>
- </ha>
- </servers>
- <clients>
- <logs>logs/client-logs/%(webserver.log.name)</logs>
- <modules>
- <module name="clustered-apache-struts-1.1" version="1.1.0"/>
- </modules>
- </clients>
- .................... 省略
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。 打开之后你会开到如下图所示的界面。

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
评论
rainsf
2008-07-29
renavatior 写道
"运行start.bat 9081 这样我们就启动了目录9081中的tomcat,端口也是9081"
我在命令行切换到“%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5”所在的目录然后打入“start.bat 9081 ”,可是我只看到黑屏一闪而过,这个是怎么启动的啊 ?
我是一个新手
我在命令行切换到“%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5”所在的目录然后打入“start.bat 9081 ”,可是我只看到黑屏一闪而过,这个是怎么启动的啊 ?
我是一个新手
需要设置环境变量,如:
set CATALINA_HOME=%TC_INSTALL_DIR%\vendors\tomcat5.5
renavatior
2008-07-15
"运行start.bat 9081 这样我们就启动了目录9081中的tomcat,端口也是9081"
我在命令行切换到“%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5”所在的目录然后打入“start.bat 9081 ”,可是我只看到黑屏一闪而过,这个是怎么启动的啊 ?
我是一个新手
我在命令行切换到“%TERRACOTTA_HOME%\tools\sessions\configurator-sandbox\tomcat5.5”所在的目录然后打入“start.bat 9081 ”,可是我只看到黑屏一闪而过,这个是怎么启动的啊 ?
我是一个新手
dengyin2000
2007-12-15
apollogter 写道
楼主,我看了你的文章刚刚开始学习terracotta,有问题想请教你一下:
关于tomcat:
我安装多个tomcat然后分别启动这多个tomcat和安装一个tomcat然后运行多个tomcat实例 有什么区别??
关于tomcat:
我安装多个tomcat然后分别启动这多个tomcat和安装一个tomcat然后运行多个tomcat实例 有什么区别??
基本上没有区别。
apollogter
2007-12-15
楼主,我看了你的文章刚刚开始学习terracotta,有问题想请教你一下:
关于tomcat:
我安装多个tomcat然后分别启动这多个tomcat和安装一个tomcat然后运行多个tomcat实例 有什么区别??
关于tomcat:
我安装多个tomcat然后分别启动这多个tomcat和安装一个tomcat然后运行多个tomcat实例 有什么区别??
dengyin2000
2007-09-24
今天准备在JBoss中测试Terracotta的Cluster。
首先建立一个.bat文件。如下:
runWithTerrcattaServer.bat
从这段.bat中我们知道需要设置TC_INSTALL_DIR, JBOSS_HOME环境变量。 最好是把JAVA_HOME也设置一下。 第三行设置Terracotta的config文件。 第四行是调用terracotta里面的设置java 启动命令, 你可以从打印出来的信息中看到terracotta把java boot class 换掉了。 这就是意味着是通过Terrcotta代理启动JBOss的。 第6行很重要,把第四行命令中生成的替换boot class append到java命令中。 下面这串就是启动JBOSS的java命令参数了。
需要注意的是现在的Terracotta并不支持所有的JBOSS. 一下是支持的server列表。
这个应该是Terracotta出的错。 D:\Working\Terracotta\terracotta-2.4.3\bin\..\lib\session\tc-session.jar。 呵呵。
首先建立一个.bat文件。如下:
runWithTerrcattaServer.bat
js 代码
- setlocal
- set TC_CONFIG_PATH=D:\Working\Terracotta\terracotta-2.4.3\tools\sessions\configurator-sandbox\tomcat5.5\tc-config.xml
- call "%TC_INSTALL_DIR%\bin\dso-env.bat" -q
- set JAVA_OPTS=%TC_JAVA_OPTS% %JAVA_OPTS%
- call %JBOSS_HOME%\bin\run.bat
- endlocal
从这段.bat中我们知道需要设置TC_INSTALL_DIR, JBOSS_HOME环境变量。 最好是把JAVA_HOME也设置一下。 第三行设置Terracotta的config文件。 第四行是调用terracotta里面的设置java 启动命令, 你可以从打印出来的信息中看到terracotta把java boot class 换掉了。 这就是意味着是通过Terrcotta代理启动JBOss的。 第6行很重要,把第四行命令中生成的替换boot class append到java命令中。 下面这串就是启动JBOSS的java命令参数了。
js 代码
- -Xbootclasspath/p:"D:\Working\Terracotta\terracotta-2.4.3\bin\..\li
- b\dso-boot\dso-boot-hotspot_win32_160_02.jar" -Dtc.install-root="D:\Working\Terr
- acotta\terracotta-2.4.3\bin\.." -Dtc.config="D:\Working\Terracotta\terracotta-2.
- 4.3\tools\sessions\configurator-sandbox\tomcat5.5\tc-config.xml" -Dprogram.name
- =run.bat -server -Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun
- .rmi.dgc.server.gcInterval=3600000
需要注意的是现在的Terracotta并不支持所有的JBOSS. 一下是支持的server列表。
Containers
Apache Tomcat 5.5.20
Apache Tomcat 5.0.28
BEA WebLogic 8.1 sp6
BEA Weblogic 8.1 sp5
BEA Weblogic 9.2
Geronimo1.0.x & 1.1.x
WebSphere CE 1.1
Websphere AS 6.1.0.7
JBoss 3.2.8
JBoss AS 4.0.5
java 代码
- 2007-09-24 17:49:23,546 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] Added url: file:D:\Working\Terracotta\terracotta-2.4.3\bin\..\lib\session\tc-session.jar, to ucl: org.jboss.mx.loading.UnifiedClassLoader3@44e72b{ url=file:/D:/Working/jboss-4.2.1.GA/server/default/deploy/jboss-web.deployer/ ,addedOrder=6}
- 2007-09-24 17:49:24,781 ERROR [org.apache.commons.digester.Digester] Begin event threw error
- java.lang.AssertionError: Cannot determine tomcat version from JBossWeb/2.0.0.GA
这个应该是Terracotta出的错。 D:\Working\Terracotta\terracotta-2.4.3\bin\..\lib\session\tc-session.jar。 呵呵。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 220285 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
VB-seamless
共 13 张
共 13 张
最近加入圈子
最新评论
-
使用Terracotta和Tomcat建 ...
renavatior 写道"运行start.bat 9081 这样我们就启动了目 ...
-- by rainsf -
使用Terracotta和Tomcat建 ...
"运行start.bat 9081 这样我们就启动了目录9081中的tomcat ...
-- by renavatior -
广州3年多经验 5500的 ...
fucku 写道广州的软件厂家可比深圳多多了,不过比起北京上海来,还是少了很多, ...
-- by yongfan_420 -
广州3年多经验 5500的 ...
广州的软件厂家可比深圳多多了,不过比起北京上海来,还是少了很多,导致机会也没有这 ...
-- by fucku -
广州3年多经验 5500的 ...
想高工资就去厂家咯,老在集成商里面混能有多大个奔头
-- by fucku






评论排行榜