浅析Tomcat、JBOSS、WebSphere、WebLogic、Apache

作任何web项目,都离不开服务器,有钱的公司用WebSphere、WebLogic,没钱公司用nginx+tomcat,不要小瞧nginx+tomcat麻雀虽小,五脏俱全。php

      服务器的知识,在笔试、面试中会常常被问到,对于一个合格的程序员,在丰富本身的编程知识外,也要尽量多的了解开发相关的知识来丰富本身。java

      对于一个菜鸟的我来讲,仅用过tomcat和Apache。而我在实际开发工做中,仅关注代码一层,对于服务器的部署和调优知之甚少。所以,最近搜集了市面上经常使用的5中J2EE应用服务器(Tomcat仅能称得上是Servlet容器)的相关信息,不求研究得有多深刻,但也略知一二。下面来总结一下Tomcat、JBOSS、WebSphere、WebLogic、Apache这五种应用服务器的优缺点。nginx

      J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,而后再把结果传输回给浏览器。能够看出服务器在这种架构是很是重要的。程序员

      Tomcat:应用也算很是普遍的web服务器,支持部分j2ee,免费,出自apache基金组织,支持Servlet、jsp。 
      JBoss:开源的应用服务器,比较受人喜好,免费(文档要收费)   
      Weblogic与Websphere:应该说算是业界第一的app  server,所有支持j2ee1.4,  对于开发者,有无偿使用一年的许可证。web

      Apache:全球应用最普遍的http服务器,免费,出自apache基金组织,能够做为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页没法支持。  面试

      Tomcat、JBOSS、WebSphere、WebLogic、Apache,都是web服务器,有什么区别和联系呢?数据库

    (一)Tomcatapache

Tomcat服务器是一个免费的开源的Web应用服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其余一些公司及我的共同开发而成。因为有了Sun的参与和支持,最新的Servlet和JSP规范老是能在Tomcat中获得体现,Tomcat 5支持最新的Servlet2.4和JSP 2.0规范。由于Tomcat技术先进、性能稳定,运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统经常使用的功能;并且很重要的是她免费,于是深受Java爱好者的喜好并获得了部分软件开发商的承认,成为目前比较流行的Web应用服务器。并且因为开源,它还在不断的改进和完善中,任何一个感兴趣的程序员均可以更改它或在其中加入新的功能。
      Tomcat 很受广大程序员的喜欢,由于它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统经常使用的功能;并且它还在不断的改进和完善中,任何一个感兴趣的程序员均可以更改它或在其中加入新的功能。 
      Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。对于一个初学者来讲,能够这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,因此当你运行tomcat 时,它实际上做为一个与Apache 独立的进程单独运行的。 
      当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器同样,具备处理HTML页面的功能,另外它仍是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。 
      Tomcat 最新版本是4.0x.4.0x与3.x的架构不一样,而是从新设计的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。因为Java的跨平台特性,基于Java的Tomcat也具备跨平台性。 
      与传统的桌面应用程序不一样,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR相似,也是许多文件的一个压缩包。这个包中的文件按必定目录结构来组织:一般其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。一般在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。一般这些所依赖的类也能够打包成JAR放到WEB-INF下的lib目录下,固然也能够放到系统的CLASSPATH中,但那样移植和管理起来不方便。 
     在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,一般第一次会很慢,由于Tomcat要将Jsp转化为Servlet文件,而后编译。编译之后,访问将会很快。编程

     Tomcat不只仅是一个Servlet容器,它也具备传统的Web服务器的功能:处理Html页面。可是与Apache相比,它的处理静态Html的能力就不如Apache.咱们能够将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只须要修改一下Apache和Tomcat的配置文件便可。 
     在Tomcat4中,你还能够利用Servlet2.3提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。浏览器

    (二)JBoss

     一个基于J2EE的开放源代码的应用服务器。由于JBoss代码遵循LGPL许可,你能够在任何商业应用中无偿使用它,而不用支付费用。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的规范,它是一个管理EJB的容器和服务器。相似于Sun'sJ2SDK Enterprise Edition(J2EE),JBoss的目标是一个源代码开放的J2EE环境。可是JBoss核心服务仅是提供EJB服务器。JBoss不包括serverlers/JSPpage的WEB容器,固然能够和Tomcat或Jetty绑定使用。 
JBoss还具备以下六大优势: 
一、JBoss是免费的,开放源代码J2EE的实现,它经过LGPL许可证进行发布。 
二、JBoss须要的内存和硬盘空间比较小。 
三、安装很是简单。先解压缩JBoss打包文件再配置一些环境变量就能够了。 
四、JBoss可以"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就能够了。若是没有加载就加载它;若是已经加载了就卸载掉,而后LOAD这个新的。 
五、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不通过网络,从而大大提升运行效率,提高安全性能。 
六、用户能够直接实施J2EE-EAR,而不是之前分别实施EJB-JAR和Web-WAR,很是方便。 

    (三) WebLogic

     WebLogic是美国bea公司(目前被Oracle收购)出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic Server 9.0是迄今为止发布的最卓越的BEA应用服务器。BEAWebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和JavaEnterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。彻底遵循J2EE 1.4规范。目前weblogic在世界application server市场上占有最大的份额
     BEAWebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和JavaEnterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。 
     BEAWebLogic Server拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。 
     与BEA WebLogic Commerce ServerTM配合使用, BEA WebLogic Server可为部署适应性个性化电子商务应用系统提供完善的解决方案。 
     BEA WebLogic Server具备开发和部署关键任务电子商务Web应用系统所需的多种特点和优点,包括: 
1)领先的标准 
    对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,而且保护了投资,同时也使基于标准的解决方案的开发更加简便。 
2)无限的可扩展性 
    BEA WebLogic Server以其高扩展的架构体系闻名于业内,包括客户机链接的共享、资源pooling以及动态网页和EJB组件群集。 
3)快速开发 
    凭借对EJB和JSP的支持,以及BEA WebLogic Server 的Servlet组件架构体系,可加速投放市场速度。这些开放性标准与WebGain Studio配合时,可简化开发,并可发挥已有的技能,迅速部署应用系统。 
4)部署更趋灵活 
    BEA WebLogic Server的特色是与领先数据库、操做系统和Web服务器紧密集成。 
5)关键任务可靠性 
    其容错、系统管理和安全性能已经在全球数以千记的关键任务环境中得以验证。 
6)体系结构 
    BEA WebLogic Server是专门为企业电子商务应用系统开发的。企业电子商务应用系统须要快速开发,并要求服务器端组件具备良好的灵活性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。BEA WebLogic Server简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操做性。 
    凭借其出色的群集技术,BEA WebLogic Server拥有最高水平的可扩展性和可用性。BEAWebLogic Server既实现了网页群集,也实现了EJB组件群集,并且不须要任何专门的硬件或操做系统支持。网页群集能够实现透明的复制、负载平衡以及表示内容容错,如Web购物车;组件群集则处理复杂的复制、负载平衡和EJB组件容错,以及状态对象(如EJB实体)的恢复

     (四) WebSphere

     WebSphere是 IBM的集成软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web应用程序和跨平台、跨产品解决方案所须要的整个中间件基础设施,如服务器、服务和工具。WebSphere提供了可靠、灵活和健壮的集成软件。(太贵了,了解很少)

    (五)Apache

     Apache是世界使用排名第一的Web服务器软件。它能够运行在几乎全部普遍使用的计算机平台上,因为其跨平台和安全性被普遍使用,是最流行的Web服务器端软件之一。在Apache基金会里面Apache Server永远会被赋予最大的支持。

    Apache支持静态页,Tomcat支持动态的,好比Servlet等,通常使用Apache+Tomcat的话,Apache只是做为一个转发,对JSP的处理是由Tomcat来处理的。

    Apache能够支持PHPcgiperl,可是要使用Java的话,你须要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。

     Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,能够认为是Apache的扩展,可是能够独立于Apache运行。

     Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)

     Tomcat是Apache组织在符合Java EE的JSP、Servlet标准下开发的一个JSP服务器.

     Apache是一个Web服务器环境程序,启用他能够做为Web服务器使用,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行。

     若是要在Apache环境下运行jsp的话就须要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat, 为何还要JDK呢?由于jsp须要链接数据库的话,就要jdk来提供链接数据库的驱程,因此要运行jsp的web服务器平台就须要Apache+tomcat+JDK。整合的好处是:

    ◆若是客户端请求的是静态页面,则只须要Apache服务器响应请求。

    ◆若是客户端请求动态页面,则是Tomcat服务器响应请求。

    ◆由于JSP是服务器端解释代码的,这样整合就能够减小Tomcat的服务开销。

    Apache:侧重于HTTPServer

    Tomcat:侧重于Servlet引擎,若是以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想;

    Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,能够认为是Apache的扩展,可是能够独立于Apache运行。

    换句话说,Apache是一辆卡车,上面能够装一些东西如Html等。可是不能装水,要装水必需要有容器(桶),而这个桶也能够不放在卡车上。

 

 

     Apache+Tomcat整合的好处是: 

 

    1)若是客户端请求的是静态页面,则只须要Apache服务器响应请求;若是客户端请求的是动态页面,则让Tomcat服务器响应请求 
    2)Apache的特色是简单、速度快、性能稳定,并可作代理服务器来使用。原本它只用于小型或试验Internet网络,后来逐步扩充到各类Unix系统中,尤为对Linux的支持至关完美。Apache有多种产品,能够支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,所以,在一个Apache Web站点扩容时,一般是增长服务器或扩充群集节点而不是增长处理器。Apache成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(能够运行在几乎全部的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。 
  几乎全部的Linux发布都安装Apache做为默认配置。SuSE7.1甚至预安装有包括各类高级模块选项的Apache,如PHP3,mod_perl和LDAP等等。用户会惊奇地发现系统安装成功就会有一个功能强大的Web服务器可供选择。虽然安装Apache并非很是简单,可是若是有具备新的特性或安全补丁的Apache发布,则下载源代码包并编译新的Apache是值得的。 
Apache不但具备庞大的用户群基础,而且有丰富的配置使用文档。Apache提供服务器端对脚本技术的支持,好比Perl、PHP等,Apache结合使用Apache JServ能够实现对Java servlets及JSP的支持。Apache的不少模块实现安全方面的防御:如mod_auth提供对对服务器上数据进行适当的保护,而SSL模块则用来保护服务器和客户端之间的通讯安全。 
  下面咱们再介绍一下Tomcat服务器软件,Tomcat是Sun和Apache合做作出来的JSPServer,支持Servlet2.2及JSP1.1等版本。笔者建议你们使用Tomcat,并且Tomcat将来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更能够发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,因此只要有JDK就可使用,不须要考虑操做系统平台。 

     相同点:

     五个服务器都是基于java的基础架构来知足实时处理需求,不一样的版本与jdk版本兼容和有所不一样;由于都是要和前台交互,因此他们都基于sun公司的servlet来实现的。

     不一样点:

     1.应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet.而Tomcat则功能没有那么强大,它不提供EJB等支持。但若是与JBoss(一个开源的应用服务器)集成到一块,则能够实现J2EE的所有功能。

     2.事实上,咱们的不少中小应用不须要采用EJB等技术,Jsp和Servlet已经足够,这时若是用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能知足咱们的需求,这种状况下咱们天然会选择Tomcat. 

     3.Tomcat也能够与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另一个项目)集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用
     4.价位不一样:

     JBoss与Tomcat的是免费的。

     5.开源性不一样:

     JBoss与Tomcat的是彻底开源的,而其余两个不是。

     6.对技术的支持:

     Tomcat不支持EJB,JBoss是实现了EJB容器,再集成了Tomcat。

    JBoss和WebLogic、WebSphere都含有Jsp和Servlet容器,也就能够作web容器。
    JBoss和WebLogic、WebSphere也都包含EJB容器,是完整的J2EE应用服务器。

    WebLogic与WebSphere都是对业内多种标准的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web应用系统的实施更为简单,而且保护了投资,同时也使基于标准的解决方案的开发更加简便。 

    JBoss是实现了EJB容器,同时内嵌Tomcat,处理静态页面Jboss的速度要比较快,能够做应用服务器。

     7.扩展性的不一样:

WebLogic和WebSphere都是以其高扩展的架构体系闻名于业内,包括客户机链接的共享、资源 pooling以及动态网页和EJB组件群集。

     8.WebLogic更增强大。weblogic是j2ee的应用服务器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商业软件里排名第一的容器(JSP、servlet、EJB等),并提供其余如JAVA编辑等工具,是一个综合的开发及运行环境。

     WebLogic应该是J2EE Container(Web Container + EJB Container + XXX规范)!

     Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只实现了JSP/Servlet的相关规范,不支持EJB(硬伤啊)!不过Tomcat配合jboss和apache能够实现j2ee应用服务器功能

       通常来讲考虑stucts等架构tomcat就能够了,但若是考虑EJB的话,WebLogic是比较好的选择。

     9.用WebLogic运行标准的java可能并非最好的方式,WebLogic里支持他本身的一些东西,这些东西虽然是在纯java基础上开发的,但其余工具里都没有。WebLogicServer凭借其出色的群集技术,拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。

     WebLogic Server既实现了网页群集,也实现了EJB组件群集,并且不须要任何专门的硬件或操做系统支持。网页群集能够实现透明的复制、负载平衡以及表示内容容错。

     不管是网页群集,仍是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是相当重要的。共享的客户机/服务器和数据库链接以及数据缓存和EJB都加强了性能表现。这是其它Web应用系统所不具有的

因此,在扩展性方面WebLogic是远远超越了Tomcat。

     总之,在功能强大和扩展性和可用性等方面WLS比Tomcat好不少,但这也不能说明WLS适合每一方面,从Tomcat的使用流行度即可以看出,Tomcat虽功能有限,但也很受欢迎。其实关键看你要作什么。

     Tomcat是免费开源的jsp,servlet引擎,入门级别的Web服务器,刚入门的IT人使用Tomcat简单易上手。并且它一个轻量级应用服务器,最重要的是它免费,因此在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP程序的首选。Tomcat比较轻巧,消耗资源较少。固然,项目大的时候,WLS确定再合适不过,并且Tomcat也没法知足太多需求,可是,WLS的费用也是不可小觑的。--------------------- 做者:Alvin家鸡鸭鱼的小米米 来源:CSDN 原文:https://blog.csdn.net/u013573133/article/details/23379565 版权声明:本文为博主原创文章,转载请附上博文连接!

相关文章
相关标签/搜索