最近在研究Jboss,下面通会通过系列的博客来给大家进行讲解,从JBOSS的历史,和Tomcat的对比(用tomcat和jboss比较多,所以在这就做一些这两个的对比),还有后期我会在我的云服务器(关于云服务器的话大家可以去小鸟云去申请个三个月的,现在个人申请是免费的,可以拿来玩玩,需要实名认证。这不是在推销哦!)上搭个jboss还有jboss集群,都会一一给大家分享,不喜勿喷哦!
Birth Place
了解到的就是JBOSS就是有JBOSS的开发团队来开发的,就是JBOSS公司。而Tomcat隶属于Apache软件基金会,很多著名的项目Hadoop,zookeeper,storm等,具体的大家可以去了解了解“一片羽毛的故事”:Apache软件基金会成立15年,在这就不细讲了。
下面咱们就通过与tomcat的一些对比来讲讲JBoss。
JBoss VS Tomcat
首先呢,Jboss和Tomcat都是J2EE应用服务器,因为他们都支持J2EE的规范,只不过支持的规范有一定的不同罢了。
上面说了,Tomcat和Jboss首先都是J2EE服务器,在往细里说,Tomcat是一个Web应用服务器,而Jboss是一个EJB服务器在4.0之前。下面再看一张图:
Tomcat支持Servlet和JSP规范,在Servlet规范中有说明:能够发布和运行Web应用的web服务器成为Servlet容器,所以Tomcat也是一个Servlet容器。也许同学们就该发问了,Jboss不支持Servlet和Jsp么?么着急,听我细细给你道来,在4.0之前,Jboss是不能直接作为Web服务器来使用的, 要想有Jboss Web的功能的话,需要和Web服务器(Tomcat/Jetty)绑定使用才行。
而Jboss4开始,jboss公司把Tomcat内嵌到了Jboss服务器中,从此Jboss便有了Tomcat的功能。
再看一张图片:
图中标黄的字体,是个人认为变动比较明显的版本,7.0几乎完全重写了Jboss,再往后就把Jboss更名为wildfly, 官方的说法是问了人们更好的区分jboss社区版和企业版,现在jboss名称默认是指jboss EAP , 开源版才叫 wildfly,不过到现在要不是我研究jboss,我可能根本不知道wildfly是个啥。具体版本每个版本的变化可以参考 JBOSS4,JBOSS5和JBOSS6各主要版本特性
吐槽大会
现阶段通过听说或者了解,可能会有些局限性的,现在比较大的公司几乎不用Jboss,为什么?因为有些公司用到的规范Tomcat就可以支持,而Jboss几乎将所有的功能都集成进入服务器(jsf ,jpa,ejb,jta,jms,jndi,jms,cache),如果公司只用到了一个Servlet容器,但却补到了Jboss上,很没有必要,有点大材小用的赶脚~~,有这么几个问题:
- jboss启动需要占用更大的内存(jboss7以后按模块加载会好些),如果买云服务那内存可不便宜
- jboss会在同时启动很多的端口(有端口洁癖的人心里很不爽)
- 配置复杂,在配置上花的时间和精力有可能比在代码业务逻辑上花的时间还多。
-
jboss性能不及tomcat,jboss性能好过tomcat那是销售的外交辞令,只要会调优tomcat 性能会好过jboss的。
不过有一句话:存在即合理,也许是我对Jboss的了解还不是很多,以上只是个人吐槽罢了,存在既有存在的道理。只是适用在什么场合吧。
最后一句话:优秀的互联网公司一直都在使用轻量级的框架和服务器,这个趋势一个没有变过。