简单理解一下:
一、Apache服务器:它本身仅提供html静态页面的功能,不支持jsp、java servlet、asp等功能;多与其他服务器或插件一起协同工作;
二、Tomcat:对Apache服务器进行扩展,可以作为JSP和Servlet的容器,但是不支持EJB,性能稳定;
缺点:1. Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差;
2. Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用;
3. 单纯的Tomcat性能有限,在很多地方表现有欠缺,如活动连接支持、静态内容、大文件和HTTPS等;
4. Tomcat是一个受限的集成平台,只支持Java应用程序;需要同时部署Apache Web Server,不能保证性能的优越性;
三、JBOSS
1. 在Tomcat的基础上,对其进行本地化,将Tomcat 以内嵌的方式集成到 JBoss 中;
它不仅是一个Servlet容器,而且是EJB容器,受到企业级开发人员的 欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。
2. 通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足;混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。
3. JBoss Web能够提供数据库连接池服务,不仅支持 JSP 等 Java 技术,同时还支持其他 Web 技术的集成,譬如 PHP、.NET 两大阵营;
保证了应用“一次开发,到处运行”的特点,使应用成品能方便地在JBoss Web和其他Java Web服务器之间轻易迁移。
4. JBoss与Tomcat 相比,JBoss Web在静态资源访问方面性能优越。
JBoss Web支持两种组件模式——纯Java和Native I/O。
在Native组件的支持下,动态运行不会受到任何影响,而静态资源的访问利用了操作系统本身提供的0拷贝传送,
CPU消耗降低,响应时间缩短,吞吐率大大提高,混合的连接模式支持最大达到10000个并发客户端的同时访问,与Apache Web服务器相当。
部署于高性能的操作系统,可利用JBoss Web对纯Java和Native I/O两种模式的支持,使得应用在开发时可随时跨平台敏捷迁移,而部署于高性能的操作系统相关的Native环境。
由于JBoss Web较好地解决了静态资源的访问性能问题,可在解决方案中把它直接作为强大的LVS的分发对象,和RHEL负载均衡系统结合,形成理论上无限线性扩展的负载均衡场景。
5. JBoss Web中的SSL性能比单纯的Tomcat快四倍。JBoss Web集成了OpenSSL,可提供高效的安全传输服务,使得安全机制更上台阶。
6. JBoss Web则可提供一个灵活的URL重写操作引擎,支持无限个规则数和规则条件。
四、Jetty
1. Jetty和Tomcat都是一种Servlet引擎,都支持标注你的Servlet规范和JavaEE规范;
2. Jetty架构比Tomcat更简单;
3 . Jetty基于Handler实现,易扩展;
4. 与Tomcat的比较:
(1)Jetty可以同时处理大量连接二期可以长时间保持连接,是和与web聊天应用的场景;
(2)Jetty架构简单,作为服务器可以按序加载组件,减少不需要的组件,从而减少内存开销,提高服务器性能;
(3)Jetty采用默认的NIO技术,在处理I/O请求上更加占优势,在处理静态资源是,性能高;
(4)Tomcat处理生命周期较短的链接,更有优势;
(5)Tomcat采用BIO技术处理I/O请求,处理静态资源的性能差;
五、BEA WebLogic Server(暂时没用到)
应用场景:
1. 如果仅需要展示html页面,而不要其他功能,-->apache;
2. 如果是在开发时使用或者是一般小型应用,需要支持jsp/servlet,而又不需要EJB的,-->tomcat;
3. 需要支持jsp/servlet,不需要EJB,要求服务器的效率和稳定性,-->apache+tomcat;
4. 需要支持jsp/servlet/EJB,-->apache+jboss(包含tomcat的版本);
以上总结基于这几篇博客,方便学到时查看(如有侵权,联系删除,谢谢):
(1)第一篇:JBoss与Tomcat的区别
原文地址:https://zhuanlan.zhihu.com/p/28724732
(2)第二篇:Tomcat、Jboss、Jetty、Apache WebLogic的区别和比较
原文地址:https://www.cnblogs.com/aspirant/p/9088995.html
(3)第三篇:Apache/Tomcat/JBOSS/Jetty/Nginx区别 与选择