您的位置:首页 > 运维架构 > Tomcat

JETTY,RESIN,TOMCAT的差别在哪里,在线上服务应该选择哪一种WEB服务器?

2019-04-03 10:31 134 查看

非原创,转自https://www.geek-share.com/detail/2739738549.html

1.背景介绍

Tomcat服务器

TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范


Tomcat 特点


1、提供了可被服务器加载并执行的程序代码,并服务于来自客户端的请求。


2、Servlet不依赖浏览器,是允许在服务器端,所以不管浏览器是否支持java,都能请求访问servlet。


Resin服务器


Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。支持负载均衡。


Resin特点


1、Resin包含了很多可靠的特性,包括服务器自动重启、检测并重启死锁的服务器、管理JVM内存以防止内存泄露等。


2、Resin可以将多个服务器作为一个服务器来对客户进行响应,从而增强服务器的扩展能力。


3、Resin可实现持久和分布的sessions:持久的session能够在服务器重启的时候保持现有的Http会话,分布式的session可以在多个服务器之间共享Http会话的状态。


Jetty服务器


Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。


Jetty特点


1、Jetty的指导原则是“简单不复杂“。Jetty容易理解和使用: 通过API或者XML文件配置; XML文件语法直接了当地在POJOs上影射API操作; 默认的配置文件可以使Jetty作为外盒(out-of-the-box); 只需少量的行数就可以嵌入一个Jetty实例。


2、可扩展性在异步的WEB2.0类型的应用程序使用的技术,例如AJAX,连接停留时间要比处理一个静态页长,线程和内存需求可能急剧增长。 底层必须优雅地处理这些问题,一个低速的数据库连接可能造成站点瘫痪,因为线程被占满了。使用Jetty...


3、高效大量的努力用来优化代码,精炼的代码以至于漏洞尽可能少:相关性尽可能少; 核心保持最小,附加函数放在可选包中;可扩展性是一个关键问题;高强度下性能衰减平缓。


4、嵌入性 Jetty是一个非常好的组件。这意味着很容易嵌入到一个应用程序中,而不需要应用程序去适应它: 使用依赖注射和反转的控制模式


5、Jetty内建插入性。所有Jetty核心组件的实现允许不同的选择,至少一个或者更多,组件的实现总是会提供的。如果这些仍然不能满足你的要求,你可以自由的编写底层接口和抽象类最为基础。这意味着Jetty能够容易地用在一个特别的应用环境中。当Jetty在一个 JavaEE服务器中作为web容器时,这是相当有用的,Jetty的插入性保证了它和主机容器的一个紧密的集成。

 

2.知识剖析
Tomcat和Resin的区别


相同点:他们都是用java编写的,都是web服务器,并且支持集群部署。


不同点:1、速度方面,Resin比Tomcat快2倍以上,不过Tomcat也很快,所以这个差别几乎感受不到。


2、开关机制上方面,Resin要比Tomcat好,比如修改了配置文件之后,Resin是会自动重启的,而Tomcat需要人工手动关闭并重启。


3、报错方面,Tomcat比较详细,一个小小的错误也会用大篇幅来描述,而Resin则相对简洁明确一些


Tomcat和Jetty的区别


相同点:tomcat与jetty都是一种servlet引擎,他们都支持标准的servlet规范和javaEE规范


不同点:1.架构方面,jetty相比tomcat更为简单jetty架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单tomcat的框架是基于容量设计的,进行扩展是需要了解tomcat的整体设计结构,不易扩展


2.jetty的应用更加快捷,修改简单,对新的servlet规范的支持更好,tomcat目前应用比较广泛,对javaEE和servlet的支持更加全面,很多特性会直接集成进来

 

3.常见问题
1,在线上服务应该选择哪一种web服务器?

2,为什么要选择jetty?

3,jetty与tomcat的比较?
 

4.解决方案
1,这些服务器各有优劣,选择服务器时应该先参考项目,预估规模大小等。比如大规模的企业级应用,Tomcat自身扩展了大量JEE特性可满足企业级应用的需求, 所以这种情况下应选用Tomcat。

2,Jetty是Java领域另一个出色的Web服务器,它同样也是开源的。与tomcat不同的是它可作为一个嵌入式服务器。也就是说,如果我们在应用中加入jetty的核心jar文件,应用即可对外提供http服务。它同时也是平台无关的java web服务器,既可以在Windos平台上运行,也可以在Linux平台上运行。

3,单纯比较Tomcat和Jetty的性能意义不是很大,只能说在某些使用场景下它们的表现各有差异,因为它们面向的使用场景不尽相同。从架构上来看Tomcat在处理少数非常繁忙的连接上更有优势,也就是连接的生命周期如果比较短,Tomcat的性能比较优。

而Jetty则恰好相反,Jetty可以同时处理大量链接并且长时间的保持这些链接,例如,一些Web聊天应用非常适合用Jetty服务器,淘宝的Web 旺旺就是用Jetty作为Servlet引擎
 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: