jetty与Undertow

2024-04-09 16:18
文章标签 jetty undertow

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888632

相关文章

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

idea下jetty的配置和运行

个人根据网上教程自己配置的。 新建一个module.然后选择项目的输出路径 output path加包 lib 在web-inf 下面新建一个 classes 和 lib 加入jetty的包 和 jfinal基础包在Artifancts下新加一个web appication Artifacts 的 xxxx;war保存在src下面新建包 分别建立 DemoConfig,hellocontroll

使用Gradle在嵌入式Web容器Jetty中运行Web应用

在使用Gradle第一次构建Web应用的代码基础上我们进行修改 Jetty 插件 在 Maven 等构建的项目中,我们要使用 Jetty 做嵌入式 Web 容器运行 Web 应用,通常需要添加 Jetty 相关依赖以及进行类似下面代码配置: package com.coderknock.jettystudy; import org.eclipse.jetty.server.Serve

jetty----竟然有另外的超级功能服务转发器

哎,不得不吐槽一下,公司福利待遇真不咋的,没有给我提供电脑。这电脑卡的我一点心情都没有。但是学习不能耽误。 这个是介绍jetty的 http://www.doc88.com/p-6925935539244.html 我发现jetty竟然可以当一个service,接受服务,handler的应用就可以弄好多端口,每个端口有一个服务在监听着。 http://www.blogjava.net/e

如何使用jetty部署solr4.8

[b][color=olive][size=large]Lucene和Solr这段时间,更新十分迅速,散仙写此篇文章之时,最新的版本已经是4.8了,这几个小的版本发布几乎每隔一个月,都会发布一个,小版本一般都是beta版本,不太稳定,用来测试还行,线上环境不建议升级,等Lucene5.0和Solr5.0的版本发布,将会有一个大的改善和提升,让我们一起期待吧! 当我们下载完一个Solr时,此刻

Intellj IDEA+Jetty部署调试web项目

[size=large]Intellj IDEA里面使用jetty调试web有2种方式: (1)Jetty Server (在本地local模式运行),使用外部的容器,需要单独下载配置配置jetty home Jetty下载地址http://download.eclipse.org/jetty/,指定端口号比较麻烦[/size] [img]http://dl2.iteye.com/u

Jetty容器

转载自:http://www.cnblogs.com/eafy/archive/2007/10/24/906792.html Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alo

Spring Boot应用部署 - Tomcat容器替换为Undertow容器

Tomcat容器替换为Undertow容器 要在Spring Boot应用中将默认的Tomcat容器替换为Undertow容器,可以按照以下步骤进行操作: Maven项目配置 排除Tomcat依赖:首先,你需要从spring-boot-starter-web依赖中排除Tomcat。在你的pom.xml文件里,找到或添加这个依赖,并进行如下配置来排除Tomcat: <dependencies

Spring Boot应用部署 - Tomcat/Jetty/Undertow容器对比和使用场景

在前面的文章中,我们介绍了如何替换Tomcat容器,现总结下Tomcat/Jetty/Undertow容器。 那在Spring Boot应用部署中,常见的三种Web容器是Tomcat、Jetty和Undertow,它们各有特点,适用于不同的应用场景: Tomcat容器 优点: 成熟稳定: 作为Apache的项目,Tomcat是最为广泛使用的Servlet容器,拥有庞大的用户基础和丰富的文档

idea+maven+jetty+jfinal环境搭建

1.环境准备 (1)JDK 安装好JDK,并设置环境变量 ①JAVA_HOME=安装位置; ②PATH=..........;%JAVA_HOME%\bin; (2)maven 解压缩maven,并配置环境变量 ①MAVEN_HOME=存放位置; ②PATH=.........;%MAVEN_HOME%\bin; 注意:这里类似于Ubuntu的源一样,使用官方的maven仓库我感