大家好,今天来介绍tomcat的优点(深入理解tomcat&jetty)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
浅谈tomcat 、apache、 nginx的区别及优缺点
本文主要介绍tomcat 、apache、 nginx的定义、区别及优缺点。
1. Apache
Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛雹悉烂使用的计算机平台上。其属于应用服务器。Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
(Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。) 缺点:配置相对复杂,自身不支持动态页面。
2. Tomcat:
Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
3. Nginx
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服源漏务器,同时也是一个IMAP/POP3/SMTP 代理服务器。
1. Apache与Tomcat的比较
相同点:
两者都是Apache组织开发的 两者都有HTTP服务的功能 两者都是免费的 不同点:
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等),而Tomcat是Apache组织在符合Java EE的JSP、Servlet标准下开发的一个JSP服务器.
Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个JSP解释器就是Tomcat。
Apache:侧重于HTTPServer ,Tomcat:侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想;
Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
实际使用中Apache与Tomcat常常是整合使用:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求。 如果客户端请求动态页面,则是Tomcat服务器响应请求。 因为JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。
可以理解Tomcat为Apache的一种扩展。
2. Nginx与Apache比较
1) nginx相对于apache的优点
轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是 阻塞型 的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 提供负载均衡
社区活跃,各种高性能模块出品迅速
2) apache 相对于nginx 的优点
apache的 rewrite 比nginx 的强大 ;
支持动态页面;
支持的模块多,基本涵盖所有应用;
性能稳定,而nginx相对bug较多。
3) 两者优缺点比较
Nginx 配置简洁, Apache 复杂 ;
Nginx 静态处理性能比 Apache 高 3倍以上 ;
Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用; Apache 的组件比 Nginx 多 ;
apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别陆明)可以对应一个进程;
nginx处理静态文件好,耗费内存少;
动态请求由apache去做,nginx只适合静态和反向;
Nginx适合做前端服务器,负载性能很好;
Nginx本身就是一个反向代理服务器 ,且支持负载均衡
3. 总结
Nginx优点:负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache;
Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
Tomcat:动态解析容器,处理动态请求,是编译JSP\Servlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。
Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。
真的的日常工作中,一般的项目还是用nginx+tomcat来做会多一点。
深入理解Tomcat
1、先大概介绍Tomcat,再介绍两个核心组件连接器和容器。
2、连接器方面,可以通过三个组件:Endpoint、Processor、Adapter去讲连接器是如何屏蔽底层网络通信细节。
3、容器方面,可以通过 Engine、Host、Context、Wrapper四种容器去讲如何运用了组合设计模式的思想,实现自由添加节点。
Tomcat 的本质其实就是 一个 WEB 服务器 + 一个 Servlet 容器 ,那么它必然需要处理 网络的连接与 Servlet 的管理 。
因此,Tomcat 设计了两个核旦槐心组件来实现这两个功能,分别是 连接器和容器 ,连接器用来处理外部网络连接,容器用来处理内部 Servlet,我用一张图来表示它们的关系:
一个 Tomcat 代表一个 Server 服务器,一个 Server 服务器可以包含多个 Service 服务,Tomcat 默认的 Service 服务是 Catalina,而 一个 Service 服务可以包含多个连接器,因为 Tomcat 支持多种网络协议,包括 HTTP/1.1、HTTP/2、AJP 等等,一个 Service 服务还会包括一个容器,容器外部会有一层 Engine 引擎所包裹,负责与处理连接器的请求与响应,连接器与容器之间通过 ServletRequest 和 ServletResponse 对象进行交流。
连接器负责将各种网络协议封装起来,对外部屏蔽了网络连接与 IO 处理的细节,将处理得到的 Request 对象传递给容器处理。
Tomcat 将处理请求的细节封装到 ProtocolHandler,ProtocolHandler 是一个接口类型,通过实现 ProtocolHandler 来实现各种协议的处理
ProtocolHandler 采用组件模式的设计,将处理网络连接,字节流封装成 Request 对象,再将 Request 适配成 Servlet 处理 ServletRequest 对象这几个闷含动作,用组件封装起来了,
以上连接器的各个组件,我用一张图说明它们直接的关系:
在 Tomcat 中一共设计了 4 种容器,它们分别为 Engine、Host、Context、Wrapper,它们的关系如下图所示:
各个容器组件之间的关系是由大到小,即父子关系,它们之间关系形成一个树状的结构。
Tomcat 的这种容器设计思想,其实是运用了组合设计模式的思想,组合设计模式最大的优点是可以自由添加节点,这样也就使得 Tomcat 的容器组件非常地容易进行扩展,符合设计模式中的开闭原则。
从容器的组合关系可以看出,它们调用顺序必定是:
定位 Servlet 的流程图:
[图片上传失败...(image-8a1b99-1576409021968)]
Mapper 最主要的核心模罩友功能是保存容器组件之间访问路径的映射关系
Web服务器的种类有哪些各自有哪些优缺点
如今的Web服务器有很多种,大家在做项目的时候根据自己的需求进行灵活仿戚绝的选择。下面我就给大家分享一下目前都有哪些Web服务器以及他们的优缺点。
- 01
Apache
Apache也被叫做httpd服务器,是目前使用最广泛的web服务器,它被应用于各种平台之中。Apache刚开始被推出的时候有很多的缺陷,如今已经被修复的越来越完善,如果你是web服务器的钻研者,我建议你一定要学习备姿一下Apache的使用。
优点:小巧,灵活,可扩展,稳定。
缺点:软件开源,所以很多的漏洞可能很容易被人查找到。 - 02
Nginx
Nginx是Linux平台下的优秀Web服务器,我以前用过这个服务器,它让本来运行很慢的应用程序提升了很大的速度。
优点:压缩率高,支持负载均衡,速度快
缺点:需要掌握熟练的Linux命令才能应用 - 03
IIS
IIS是微软平台的Web服务器,是针对Windows平台的服务器。它和NET语言非常仔枯的搭配,新手掌握起来也比较快。
优点:安装配置简单,学习起来容易
缺点:平台适用性单一,安全性有待提高 - 04
WebLogic
WebLogic是专门应用于企业级开发的web服务器,比较常见的是和Java语言搭配,使用起来和Apache差不多,同时它的架构也非常的优秀。
优点:安全性高,专业性强,耦合度低
缺点:不容易掌握,需要有一定的专业积累才能熟练应用 - 05
Tomcat
Tomcat是很多Java学习者都非常熟悉的web服务器,一般刚开始学习Java Web开发的人都会使用Tomcat作为服务器进行练习。它既有可视化的操作界面,也有命令语句,是不错的入门级服务器。
优点:简单易掌握,部署容易,应用广泛
缺点:扩展性不强,可配置性弱,大并发能力不强 - 06
Lighttpd
Lighttpd是一款开源的web服务器,比较的轻巧,功能也很多。目前在使用率上比较少,还没有推广起来。
优点:小巧精致,功能强大
缺点:漏洞较多,学习资源不多 - 07
Sun
Sun是一款针对Solaris的web服务器,应用范围不是很广泛,只应用于Sun公司的相应web产品。另外一般的开发者轻易的用不了这款服务器。
优点:针对性强,并发性高,速度快,效率高
缺点:掌握难,适应性不高 - 08
Jetty
Jetty是专门针对Java Web的服务器,它被用来运行Servlet程序,是众多服务器中最局限的一个了。我并不建议大家掌握这款服务器。
优点:内容简单,容易掌握
JSP+MySQL+Tomcat组合的优点有哪些
jsp的优点就是编译后是servlet,众所周知servlet的安全性很高,比如银行缴费的页面都猛贺是一个servlet请求,其他貌似都没有纯html或php这种优秀
mysql的优点就是小,安装方便快捷,对没薯机器要求低
tomcat的优点就是小,使用方便,目前支持集群了
以枯知者上3个组合仅适用于超小型的应用或者没钱的甲方
webshpere和JBOSS和tomcat各自哪些特点和优势
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可。其运行时占用的系统资源小,扩展性好,且支持负载平衡与邮件服务等开发应用系统常用的功能。作为一个小型的轻量级应用服务器,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,成为目前比较流行的Web 应用服务器。
而JBoss Web采用业界最优的开源Java Web引擎, 将Java社区中下载量最大,用户数最多,标准支持最完备的Tomcat内核作为其Servlet容器引擎,并加以审核和调优。单纯的Tomcat性能有限,在很多地方表现有欠缺,如活动连接支持、静态内容、大文件和HTTPS等。除了性能问题,Tomcat的另一大缺点是它是一个受限的集成平台,仅能运行Java应用程序。企业在使用时Tomcat,往往还需同时部署Apache Web Server以与之整合。此配置较为繁琐,且不能保证性能的庆搜中优越性。
JBoss在Tomcat的基础上,对其进行本地化,将Tomcat 以内嵌的方式集成到 JBoss 中。JBoss Web通过使用APR和Tomcat本地技术的混合模型来解决Tomcat的诸多不足。混合技术模型从最新的操作系统技术里提供了最好的线程和事件处理。结果,JBoss Web达到了可扩展性,性誉山能参数匹配甚至超越了本地Apache HTTP服务器或者IIS。譬如JBoss Web能够提供数据库连接池服务,不仅支持 JSP 等 Java 技术,同时还支持其他 Web 技术的集成,譬如 PHP、.NET 两大阵营。
标准化是减小技术依赖风险,保护投资最好的方式。JBoss Web率先支持全系列JEE Web标准,从根本上保证了应用“一次开发,到处运行”的特点,使应用成品能方便地在JBoss Web和其他Java Web服务器之间轻易迁移。
集多功能于一身,性能卓越
作为Web 应用服务器中的明星产品,JBoss Web服务器集多种功能于一身。其关键功能包括:完全支持Java EE、高度的扩展性、快速的静态内容处理、群集、OpenSSL、URL重写和综合性。
JBoss Web服务器具有原生特性和强大的可扩展性,可支持多种并非基于Java的服务器内容处理技术,可同时运行JSP, Servlet, Microsoft .NET , PHP 及 CGI,为其提供一个单一的、高性能的企业级部署平台。
与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负载均衡系统结合,形成理论上无限线性扩展的负载均衡场景。
OpenSSL是业界最为快速和安全的开源传输组件,可借助操作系统和硬件的特性实现高效的安全承载。JBoss Web集成了OpenSSL,可提供高效的安全传输服务,使得安全机制更上台阶。研究表明, JBoss Web中的SSL性能比单纯的Tomcat快四倍。
URL重写功能可缩短URL,隐藏实际路径提高安全性,易于用户记忆和键入,及被搜索引擎收录。Tomcat 不具备URL重写功能,JBoss Web则可提供一个灵活的URL rewriting操作引擎,支持无限个规则数和规则条件。URL可被重写以支持遗留的URL错误处理,或应对服务器不时产生的其他问题。
JBoss Web既可单独运行,也可无缝嵌入JBoss应用服务器,成为JBoss中间件平台的一部分。不仅后台服务调用的性能将得以提升,也可利用以下JBoss平台的特性提升Web应用功能:
基于JGroups的多种集群方案的支持
基于Arjuna技术的JTA和JTS的事务处理支持
优化的线程池和连接池的支持
基于JMX 控制台的基本管理支持和JBoss On的高级管理维护支持
基于JBoss AOP技术的面向方面架构的支持
Hibernate服务组件的支持
本文地址:https://gpu.xuandashi.com/71746.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!