jetty与Undertow
Jetty
一、jetty的基本讲解
1、基本概念
jetty: Jetty是一个开源的servlet容器,它为基于Java的web容器,
例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以
一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速
为一些独立运行(stand-alone)的Java应用提供网络和web连接ps:要想使用则必须先安装且配置JDK
2、jetty的好处
①异步的 Servlet,支持更高的并发量 ②模块化的设计,更灵活,更容易定制,也意味着更高的资源利用率③在面对大量长连接的业务场景下,Jetty 默认采用的 NIO 模型是更好的选择④将jetty嵌入到应用中,使一个普通应用可以快速支持 http 服务⑤Jetty也被应用于一些知名产品中,例如ActiveMQ、Maven、Spark、GoogleAppEngine、Eclipse、Hadoopps:jetty是一个轻便,性能强悍的一个类似于tomcat的服务器中间件
3、jetty实现发布运行web项目
1.Eclipse配置jetty插件: 采用的是离线版的 直接即可复制即可2.创建一个web项目,可以是maven的,也可以不是maven的,直接使用即可选中项目,单击右键,参考:jetty的运行示意图.png
4、jetty部署web项目
1.准备工作:1)先去jetty的官网下载一个jetty的压缩包(其实jetty的官网就是eclipse的官网),然后放在到D:/tools下,然后解压,然后将解压之后的名字更改为jetty202001172.验证并运行官网给的示例: 参考图:jetty的验证并运行官网给的示例.png 输入指令: java -jar D:\tools\jetty20200117\jetty20200117/start.jar###部署web项目### 准备工作:准备一个web项目的war包 3.将war包放入到D:\tools\jetty20200117\jetty20200117\webapps文件夹下4.进入到D:\tools\jetty20200117\jetty20200117目录下,然后参考图:jetty部署web项目..png,输入指令: java -jar start.jar 即可看到部署成功了
5.修改端口号
6、jetty与Tomcat的区别
Jetty和tomcat的比较
相同点:Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。
不同点:架构比较 Jetty的架构比Tomcat的更为简单 Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。 Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。性能比较 Jetty和Tomcat性能方面差异不大 Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等。 Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能。 Jetty默认采用NIO结束在处理I/O请求上更占优势,在处理静态资源时,性能较高;Tomcat适合处理少数非常繁忙的链接,也就是说链接生命周期短的话,Tomcat的总体性能更高。 Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差。其它比较 Jetty的应用更加快速,修改简单,对新的Servlet规范的支持较好。 Tomcat目前应用比较广泛,对JavaEE和Servlet的支持更加全面,很多特性会直接集成进来。
二、Undertow的基本讲解
1、基本概念
1.Undertow: Undertow(暗涌) 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器2.特点:轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心Jar包组成,加载一个 Web 应用可以小于 10MB 内存Servlet3.1支持:它提供了对Servlet3.1的支持(支持异步)WebSocket支持:对Web Socket完全支持,用以满足 Web 应用巨大数量的客户端嵌套性: 它不需要容器,只需通过API即可快速搭建Web服务器3.官网: https://undertow.io/
2、Undertow实现简单的文件系统
1.导读模块:Undertow 是基于java nio的web服务器,应用比较广泛,内置提供
的PathResourceManager,可以用来直接访问文件系统;如果你有文件需要对外提供访
问,除了ftp,nginx等,undertow 也是一个不错的选择,作为java开发,服务搭建非
常简便2.使用Undertow搭建一个简单的文件系统:1)创建一个maven项目,且引入undertow的依赖<dependency><groupId>io.undertow</groupId><artifactId>undertow-core</artifactId><version>2.0.22.Final</version></dependency>2)在mian函数的App类中,创建服务并启动package com.rj.bd;import java.io.File;import io.undertow.Handlers;
import io.undertow.Undertow;
import io.undertow.server.handlers.resource.PathResourceManager;/*** @desc 利用Undertow实现简单的文件发布系统* @author HYZ* @time 2021年1月12日*/
public class App {public static void main( String[] args ){//1.构建的文件系统的路径File file = new File("D:/tools/");//2.基于Undertow在本机上创建服务程序,且端口号是8099,Undertow server = Undertow.builder().addHttpListener(8099, "localhost")//设置Http请求手柄.setHandler(Handlers.resource(new PathResourceManager(file.toPath(), 100))//设置显示文件列表 .setDirectoryListingEnabled(true))//创建服务.build();//3.启动服务server.start(); }
}
3、Tomcat与Undertow的区别
导读模块:undertow,jetty和tomcat可以说是javaweb项目当下最火的三款服务器,
tomcat是apache下的一款重量级的服务器,不用多说历史悠久,经得起实践的考验。然而:当下微服务兴起,spring boot ,spring cloud 越来越热的情况下,选择一
款轻量级而性能优越的服务器是必要的选择。spring boot 完美集成了tomcat,jetty和
undertow。值得一提的是jetty和undertow都是基于NIO实现的高并发轻量级的服务器,
支持servlet3.1和websocket。tomcat与undertow在功能是基本上一样的,他们的区别主要在于性能上1)Tomcat APR 模式 "最优" , Jetty"最差",Undertow也没有想象中的碾压 Tomcat2)Tomcat NIO 模式 压力刚上来的时候CPU会用满,稳定后基本会留有10%以上的空闲3)Jetty采用的默认配置 , 才2k不到的QPS确实有点出乎意料的,但是体积小,比较灵活4)Undertow提供的配置项很少 , 只有线程数和缓冲大小,加大线程数后也没能显著提升性能PS:QPS:系统吞吐量
jetty与Undertow相关推荐
- Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers
原文地址:https://examples.javacodegeeks.com/enterprise-java/spring/tomcat-vs-jetty-vs-undertow-compariso ...
- servlet container:tomcat jetty and undertow
1 spring boot内嵌容器支持tomcat.jetty和undertow 但是undertow性能最好,详见: https://examples.javacodegeeks.com/enter ...
- Tomcat vs Jetty vs Undertow性能对比
文章目录 测试环境 压测环境: 压测指标 结论 Tomcat,Jetty和Undertow是目前比较主流的3款Servlet容器,而且Spring Boot框架还提供了对它们的集成支持(默认使用的是T ...
- springBoot中jetty tomcat undertow对比与undertow线程池配置
springBoot中jetty tomcat undertow对比 1)tomcat优点是稳定性好.可靠性高.支持 Servlet 和 JSP 等标准.构建中小型的 Web 应用程序,可以选择 To ...
- Java REST API Server 性能比较 Tomcat/Jetty/Grizzly/Undertow
JSR-356:WebSocket JSR-311:JAX-RS 原文地址 https://menelic.com/2016/01/06/java-rest-api-benchmark-tomcat- ...
- Spring Boot配置Tomcat容器、Jetty容器、Undertow容器
Spring Boot配置Tomcat容器.Jetty容器.Undertow容器 Tomcat.Jetty.Undertow Tomcat概述 Jetty概述 Undertow概述 Spring Bo ...
- SpringBoot 配置嵌入式Servlet容器(tomcat,jetty,undertow)
SpringBoot 默认打包方式为jar包,且可以自启动,就是因为它内嵌了Servlet容器. SpringBoot 默认使用嵌入式Servlet容器,SpringBoot 2.2.5 默认是 To ...
- Undertow,Tomcat和Jetty服务器之间的区别
Undertow,Tomcat和Jetty服务器配置详解与性能测试 本文文章是通过研究时下比较流行的Java框架spring boot引发的思考,希望大家能一起学习.undertow,jetty和to ...
- 吊打 Tomcat ,Undertow 性能很炸!!
在 Java Web 容器的世界里,Tomcat 和 Jetty 是大名鼎鼎的.用的最多的开源项目,也是大众熟知的. 今天再介绍另外一款能和 Tomcat 媲美的神器:Undertow,据说性能方面还 ...
最新文章
- leetcode第一刷_Recover Binary Search Tree
- GitHub日收12000星,微软新命令行工具引爆程序员圈!
- key的数据类型是字符串
- java动态代理和cglib动态代理
- pb的webserver增加的方法发布后没有显示_震惊!!!Diboot 2.0.5 发布,让开发工作又快又爽...
- windows azure mysql data disk_调整Azure中虚拟机数据磁盘大小实践
- Apache配置问题
- 人脸对齐(二十一)--A Recurrent Encoder-Decoder Network for Sequential Face Alignment
- Himawari-8葵花八HSD数据处理——几何校正
- python设置主题背景
- 【Ail规约】慎用 Object 类下的 clone 方法拷贝对象
- java创建无法确定大小的数组
- 深入 iOS 静态链接器(一)— ld64
- 企业内的ITSM软件与OA系统有什么区别和关系?
- 干货 | 如何做一档好节目?
- 多年后再回头看那海市蜃楼
- plsql无法连接oracle,报错:ORA-12514
- 自定义漂亮的圆形进度条
- 京东、天猫等电商平台产品评价
- [蓝桥杯]连号区间数[题目详解]
热门文章
- MySQL报错:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
- SpaceVim 使用指南
- PAT (Basic Level) Practice学到的东西C语言篇
- PYNQ(三)HDMI学习彩条
- 微信能设置“两个头像”,来试试!
- Apollo路径规划学习
- 辽宁聚能合创:抖音直播赚钱吗?
- 申宝公司-道指、标普创收盘新高
- 日更计划Day1 USACO Feb BronzeT3
- juicer.js 使用 示例