如果大家还没听过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 代码
- <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