Tomcat6.0的负载均衡(Apache2.2)与集群配置
这两天尝试了一下Tomcat的负载均衡以及集群配置,小可不才斗胆记录如下,网上好多都是先配lb再配集群滴,小子反其道而行先配集群吧,首先声明这个与手把手或者从零开始系列不太粘边只提供一个配置过程及思想,纯拿来主义在这可能不太灵光。后续在理解好这些原理后可能会再谈谈自己的心得,欢迎各位大牛参观指导^_^~
1、环境列表
?
2、软件包列表(注意都是Win版x86系列的包哟)
?
3、编写测试代码
编写测试代码的目的是便于观察配置是否成功,1)直观识别出请求被负载均衡到不同的Tomcat实例中;2)同一Session是否被分配到同一Tomcat实例处理,Session能否在集群中共享;3)当集群中某一Tomcat实例意外down机后,请求能否透明分配给另一Tomcat实例进行处理。
最关键的就是如何直观识别出请求被哪个Tomcat实例处理,我采用的比较懒的解决方案:Servlet在接到请求后在终端System.out.print当前Session的属性。
代码实在拿不出手,只得琵琶半遮面了,主要是直观标识出session及相应属性:
?
4、配置集群
参考材料:http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
官方的HowTo里解释的很详细了,在6.0.32版本上,我所做的只是简单打开3个Tomcat实例配置文件中Cluster元素的注释而已。(由于Cluster元素有默认配置,介个可以参考howto里给出的内容,所以完全没有必要再手工给出详细的配置^_^)此处,集群各Tomcat实例的Receiver端口会自动检测4000-4100端口值并完成分配的,所以也不需要额外进行手工配置,好吧,再贴点代码片断:
?
?