Tomcat 、Jetty、JBOSS、Nginx

第一部分概念介绍

一、Tomcat

Tomcat是应用(Java)服务器。Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,Tomcat支持动态的。

二、Jetty
Jetty通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足。混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。结果,Jetty达到了可扩展性,性能参数匹配甚至超越了本地Apache HTTP服务器或者IIS。譬如Jetty能够提供数据库连接池服务,不仅支持 JSP 等 Java 技术,同时还支持其他 Web 技术的集成,譬如php、.NET 两大阵营。

三、Nginx
Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就稳定性而言,nginx比lighthttpd更胜一筹。

四、JBoss

JBoss一个基于J2EE的开放源代码的应用服务器.JBoss是一个管理EJB的容器和服务器,但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

JBoss与Web服务器在同一个Java虚拟机中运行  JBoss运行后后台管理界面,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。

第二部分比较区别

Tomcat与Jetty相同点:

tomcat与jetty都是一种servlet引擎,他们都支持标准的servlet规范和javaEE规范。Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet容器。一个Java Web应用部署于两款容器的任意一个皆可

Tomcat与Jetty不同点:

1.架构比较

jetty相比tomcat更为简单

jetty架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单

tomcat的框架是基于容量设计的,进行扩展是需要了解tomcat的整体设计结构,不易扩展

2.性能比较

jetty和tomcat性能方面差异不大

jetty可以同时处理大量链接而且可以长时间保持链接,适合于javaWeb聊天应用

tomcat在很多地方表现有欠缺,如活动连接支持、静态内容、大文件和HTTPS等

tomcat的另一大缺点是它是一个受限的集成平台,仅能运行Java应用程序

jetty的架构简单,因此作为服务器,jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能

jetty默认采用NIO结束来处理I/o请求上更占优势,在处理静态资源时,性能较高

tomcat适合处理少数非常繁忙的连接,也就是连接生命周期短的话,tomcat的总体性能更高

tomcat默认采用B/o处理I/o请求,在处理静态资源时,性能较差

3.其他比较

jetty的应用更加快捷,修改简单,对新的servlet规范的支持更好

tomcat目前应用比较广泛,对javaEE和servlet的支持更加全面,很多特性会直接集成进来

Jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。

Jetty更轻量级。这是相对Tomcat而言的,  tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效

发布了22 篇原创文章 · 获赞 3 · 访问量 6760

猜你喜欢

转载自blog.csdn.net/weixin_39910081/article/details/85783957