用开源软件简略实现的java website cluster结构

用开源软件简单实现的java website cluster结构
用开源软件简略实现的java website cluster结构
见上图,用开源软件简单实现的java website cluster结构。这个结构其实是很简易试验的,其中在apache和tomcat这部分,只要熟读tomcat cluster和mod_jk的文档后,并且你是懂得用httpd.conf的话,只要花1,2天的时间就可试验,并用一小jsp程序进行试验。
同时,即使用不上完整和大型cluster结构,同一server 硬件内进行单apache+双tomcat的运行结构对小型系统的生产运行环境也是有好处的:
更新application classes/lib时,可先停掉一个tomcat,将现时登录用户无缝切换至另一tomcat服务,更新停掉tomcat的classes/lib代码后重新投入服务,再停掉另一tomcat更新代码。tomcat的SimpleTcpCluster其实只是实现简单的在各tomcat间序列化session复制机制,而各tomcat内部还是独立运行的,如果session中变量代码不发生变化的话,问题不大。而用户是感觉不到后台tomcat的切换,对用户来说服务没有停止。这种结构可以处理大部分tomcat需要停止而不希望停止用户服务的问题。
注意: 最新版本的mod_jk的配置格式和旧版本(现在网络上搜索到大多数还是旧配置格式)是不同的,建议直接看mod_jk文档。

以下是简单配置提示:
(1)直接下载tomcat/httpd版本对应的mod_jk.so

(2)httpd.conf中加入:
LoadModule jk_module modules/mod_jk.so

JkWorkersFile /home/apache/conf/workers.properties
JkShmFile     /home/apache/logs/mod_jk.shm
JkLogFile     /home/apache/logs/mod_jk.log
JkLogLevel    info
JkMount  /*.jsp lb
JkMount /jkstatus/* jkstatus

(2)workers.properties配置:
worker.list=lb, jkstatus
worker.lb.type=lb
worker.lb.balance_workers=tomcat01, tomcat02

worker.jkstatus.type=status

worker.tomcat01.type=ajp13
worker.tomcat01.host=localhost
worker.tomcat01.port=8009

worker.tomcat02.type=ajp13
worker.tomcat02.host=localhost
worker.tomcat02.port=9009

(3)tomcat01/tomcat02的server.xml中配置jvmRoute、AJP端口、Cluster:
<Engine name="Catalina" defaultHost="localhost"  jvmRoute="tomcat01">

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

(4)cluster application web.xml中配置:
<distributable />

btw: javaeye blog显示将unix下的CRLF显示成两行回车换行。
1 楼 Huaqingfly 2008-03-12  
看不懂啊。大侠。是不是集群服务器啊。有时间向你请教。
2 楼 Huaqingfly 2008-03-12  
看似很有用啊。。本人现在急缺这个。