Apache + Tomcat 实现负载均衡(二)

第二次写关于Apache + tomcat 实现负载均衡的文章。这篇为第二篇。只为让自己长个记性发现第一次的错误。


不知道有没有看我blog的人按照第一次的配置的方式去实现apache+tomcat,如果有人用了肯定就会有问题,因为那个配置可以实现负载均衡。


但是session的复制应该会出现问题。今天我闲来无事想尝试下mod_proxy的配置方式。但是还没搞的时候发现原来的mod_jk的配置方式session复制有问题又重新


解决了下。现在记录于此。



1.我用的是tomcat7.如果想要实现session的复制需要将tomcat conf中得server.xml进行修改。放开此段注释。


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


2.在我上篇文章的基础上修改 workers.properties文件为现有形式:


#===========controller,负载均衡控制器====
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session_force=1
#1为 true 0 为false
worker.controller.sticky_session=0
此处在详细解答下这个sticky_session的0和1的区别。

这个区别就是,当sticky_session=1的时候假如服务器A接受了请求,以后得请求都会发送给A,不会轮询

当sticky_session=0的时候假如A服务器接受了请求,按F5再次刷新结果到了B服务器,再按一次又到了C服务器,会话会轮询。

# sticky_session请求是发送给一台服务器1,还是多台服务器0。session的复制只与tomcat集群配置有关。
但是经过我的测试发现,当我此属性设置为1的时候这个时候我访问localhost/test/test.jsp 访问到tomcat1上,再次新开浏览器

访问同样的路径然后分配到tomcat2上,这个时候我将tomcat1关闭,在浏览器1上刷新这个时候就会报错。如果这样就没有起到

作用,所以个人认为,这里还是应该配置成0,这样,当你的一个tomcat挂掉的时候他会轮询到别的tomcat上,而且还携带着你的session信息。


这篇应该算是答疑,希望配置中出现问题的朋友也研究讨论下。看看明天有时间搞下mod_proxy的形式,因为现在mod_jk的形式已经淘汰了。


发布了49 篇原创文章 · 获赞 7 · 访问量 41万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章