Owen的酒楼

--酒楼上渡过的人生--
生命太短,人生太长,但愿别喝醉了。

导航

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

Posted on 2007-12-16 17:23  Hicome  阅读(482)  评论(0编辑  收藏  举报
关键字: 企业应用   terracotta, cluster    

转自我同事denny的帖子:http://dengyin2000.javaeye.com/blog/126003? 
如果大家还没听过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 这个文件。修改后的请看如下:


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