非常不错,看来越来越多的人自己动手,开始从自己的实践中获得真实的认识,而不是人云业云了。

leema也做了Tomcat和Resin之间的性能测试,Resin性能胜出,我估计这和Tomcat过分重视设计和代码优雅性有关,因为阅读Tomcat源码,是在阅读一份高质量的设计系统,但是如何在性能和高质量设计之间实现统一和平衡,这是实践中需要把握的尺度。

http://www.jdon.com/jive/thread.jsp?forum=62&thread=17161

这两篇放在一起,供大家学习参考。

不可否定Resin比Tomcat快(不知跟Tomcat5.5比到底快多少), 但是跟题目不相称哦, 因为这里做的是分布式集群测试. 而听好多人说Resin不支持分布式集群(只支持负载均衡), 只能在一台机器上运行N个Resin服务.

过几天测试一下Tomcat 5.5.4和Resin 3.0.9的性能. 呵呵.

我没有仔细研究Tomcat 5的集群特性,集群定义中除了动态负载平衡外,还有单点恢复要求,就是一台服务器死机,不影响任何运行中的程序功能和状态,这需要服务器之间频繁通讯,Web 服务器已经面临频繁地客户端请求,如果再处理服务器之间通讯,加上数据库连接,是不是比较累?

建议采取专门的分布式计算体系如EJB专门做服务器之间通讯和数据库连接,分担前台工作量。

恩, 我的测试里就有突然里面有台机器当机, 然后又有另一台机器启动来平衡集群中连接事务的测试. tomcat在添加/删除节点的时候反应比较慢, 但是过了那段时间(大概5-6秒), 就跟原来的速度一样了.

关于web只实现负载平衡的问题, 这个我在安装openCMS的时候深有体会, 它的安装步骤是存储在session中的, 例如第一步是选择安装方式, 如果能进行session复制, 当你点击下一步时, 就会转到第二个web服务器中处理请求, 而这里没有存储第一步已完成标识的session对象. 结果, 还得重新做, 有时候还会出现异常.

我认为最灵活的方法就是web, ejb, 数据库都做集群, 这样其中任何一个节点挂了, 都不会影响整个系统的运作, 但需要可怕的硬件投入(或许对有钱人不会算什么....).