设为首页 收藏本站
查看: 560|回复: 0

[经验分享] Clustering using Tomcat

[复制链接]

尚未签到

发表于 2017-1-17 10:31:31 | 显示全部楼层 |阅读模式
在Without Ejb第四章中有段对EJB的分布化和可扩展性的讨论:

在人们中间有一个广为传播的信念: 分布式应用系统是高度可扩展的.这种观点认为,可以使用4个web容器, 8个ejb容器所有的业务都通过web层远程调用.这样就可以得到非常好的扩展行.

然后作者在下文中批判了这种观点.每次远程方法调用造成的性能代价太过高昂,以至于在理论上还有什么 收益的化,早也被网络传输或对象编组中的损失给大大超过了. 作者建议的是对整个应用系统进行集群式部署. 然后在运用硬件负载均衡或web容器的负载均衡来分流访问.

集群是个诱惑的名字. 今天花了一上午了解了如何在Tomcat中实现集群. 还不错, 当在Tomcat官方网站上看了集群的文章时, 感觉并不是很难, Tomcat5.X已经把集群内嵌了.

配置也瞒简单的, Tomcat是用多波包(multicast)的方式去发现其他的节点,其他节点回返回IP 和 端口, 以提供session的复制.  所以放在session里面的对象一定要实现序列化,  当在一定的时间内没有收到某个节点返回值时, 那个节点就判定死了.  还有就是要怎样实现load balancing ,  你要怎样分发请求(request)到集群节点(Node)去, 这里也有许多方法,  我看的是用Servlet Filter去做这件事的(参考下面网站的例子).

集群能给我们带来很多好存, 性能的可扩展性,  可以关掉几台Node, 而系统不受影响.

今天在Javalobby看到一个关于集群的一个trick.
假如在一台node中的session中存有一个List对象.
如果你是这样使用的话,
List l = (List)session.getAttribute("list");
l.add("Denny");
这个session不会引发session复制. 所有你还需要把这个List set回session中.

If you have an ArrayList in the session representing shoppingcart objects and if you just call getAttribute() to retrieve theArrayList and then add or change something without calling thesetAttribute(……………) then the container may not know that you have addedor changed something in the ArrayList. So the session will not bereplicated.

ok 就讲这么多了.
官方指南
http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

下面的这个不错, 带了一个例子, 自己实现了两个load balancing的算法. 用的是Filter
Clustering and Load Balancing in Tomcat 5, Part 1
http://www.onjava.com/pub/a/onjava/2004/03/31/clustering.html?page=1

Clustering and Load Balancing in Tomcat 5, Part 2
http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html?page=1

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-329692-1-1.html 上篇帖子: eclipse tomcat部署web应用 下篇帖子: tomcat小技巧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表