前言

长久以来,JBoss一直作为开源的企业级服务器的首选。很多关键的应用,经常都可以见到JBoss服务器的身影。当初我们公司选择Web服务器的时候,几乎没有任何悬念,团队中的成员对选择JBoss服务器都表示了赞同。我们现在所开发的应用,基本上都是基于JBoss的,连最重要的网上缴费系统,都运行在它的上面。但是随着技术的发展,这个选择慢慢开始发生了变化,究其原因,主要有以下几点:


JBoss服务器大庞大了
刚开始的时候,我们公司是使用JBoss3的,后来不断地对其进行升级,现在生产环境中使用的是JBoss6。作为一直以来,服务器升级的负责人,我不断地对其进行升级,但是现在,我开始反对继续升级JBoss了,甚至希望用其它服务器替代JBoss,例如最新的Tomcat7。刚开始用JBoss3的时候,JBoss是相当之轻巧的,它提供的功能和服务大多数我们都用得上。部署应用到服务器,一两分钟就可以启动完。当时我们的项目是基于EJB2开发的,虽然EJB2是个笨家伙,但是在JBoss上面,这些开发的应用都没有出现什么问题。但是现在,因为JBoss已经变得很庞大,增加了很多我们不经常使用的功能,现在启动服务器简直令人无法忍受,一次启动,四五分钟是少不了的,虽然应用上不需要时刻在线,但是它现在的庞大,已经慢慢脱离了我们选择它作为我们服务器的初衷。

有太多问题出现
用过好几个JBoss的版本,问题最多的就是JBoss6,连官方在其发布后不久,就决定将其放弃,而将全部的力量放到JBoss7上面,准备很快地用JBoss7代替JBoss6,但是JBoss7一发布,却发现它连邮件和压缩功能都不支持,而AOP也放弃了维护。看到这些,真的令人很希望,这些功能都是我们需要的,但是现在却暂时不支持,或者以后都不支持,令到我们的开发人员很头疼。其实从最近几个版本开始,JBoss就问题不断,好象当初的VFS和Struts不兼容问题,日志问题,VFS classloader问题,这些问题并没有在其正式版本发布之前得到解决,反映出其公司的开发人员对代码质量的要求已经有所下降。难怪淘宝从JBoss4开始就一直没有升级,一直到现在都在用JBoss4.2,可能他们已经发现了JBoss的这些问题,所以才一直按兵不动。

不适合做Cluster
前段时间有个统计,说中国的上网人数已经有五六亿了,这么多人上网,对网站的并发要求也越来越高,虽然你的网站在初期用户量可能并不多,但是只要它在发展,迟早会遇到并发的问题,而解决并发,Cluster是最好的方法。我们当初在JBoss4的时候,已经测试过JBoss4自己提供的集群功能,结果令人很失望,六七十个并发服务器就已经很慢了,虽然是在比较差的机器上试验的,但是这样的结果也令人不可以接受。难怪当初淘宝为了解决服务器的性能问题,特意从JBoss公司挖了一些人过来,对其进行二次开发,最后才解决了问题。虽然最新版本的JBoss我们没有做过这方面的测试,但是据其论坛一些使用者的介绍,性能也不是太令人满意。而Nginx+Tomcat+Memcached的架构,网上已经有很多人在使用,而且反应都相当不错。

Tomcat的性能更好
根据淘宝前段时间公开出来的一份报告显示,淘宝将其JBoss4替换为Tomcat7之后,在性能上面,马上提高了10%以上。淘宝的流量和并发可以说是很惊人的,但是Tomcat竟可以顶住,并且还有性能上的提升,看来Tomcat这只小猫现在已经可以独当一面了。最新版本的Tomcat,更带了一个全新的JDBC连接池,我前段时间粗略地看了一下它的文档和源代码,发现功能相当之不错,代码也相当之简洁,网上有人做了一些测试,发现它的性能也相当不错,已经有人将其应用到生产环境中。

Tomcat的成本更低
由于Tomcat更易使用,历史更悠长,所以使用它的人更多,同时,也意味着使用它的成本更低,出现问题得到解决的机率更大。以前Tomcat在企业级应用中使用得比较少,是因为Tomcat的确存在各种不同的问题,但是现在随着技术的发展,这些问题已经大多数得到解决。另外由于SSH的流行,我们可以更容易地请到这方面的开发人员。

结论
虽然JBoss有各种的不足,Tomcat有各种的好处,可惜由于历史的原因,当前我们很多项目都是建基于JBoss上面开发的,有些应用甚至绑定了JBoss,所以要进行服务器的迁移,成本都比较大。虽然以前有简单地向主管提过这方面的建议,但最后都放弃了。但是以后开发的新项目,Tomcat一定会是我们首要的选择。
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐