Jetty、Netty、Tomcat、Undertow

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
性能测试 PTS,5000VUM额度
可观测链路 OpenTelemetry 版,每月50GB免费额度
简介: Jetty、Netty、Tomcat、Undertow

@[toc]

Jetty、Netty、Tomcat、Undertow


Jetty是一个开源的基于Java开发的Web容器,主要用于构建可扩展的服务器端应用程序。它可以运行在Java虚拟机上,可以通过插件以及其他应用程序组件来
实现服务器功能。它提供了一个用于构建Web应用的框架,可以轻松构建高性能的Web应用程序。

优势

Jetty可以提供高性能,同时拥有简单易用的API,可以让开发人员快速构建和部署Web应用程序。它还支持多种协议,如SSL、AJP、HTTP/2等,
支持OSGi框架,拥有完善的文档,以及强大的插件系统。

劣势

Jetty不支持JSP和Servlet 2.5以下的版本,并且不能支持EJB组件,也不支持重新加载Web应用程序,以及其他一些功能。

应用场景

Jetty可以用于构建高性能的Web应用程序,比如Web站点、REST API、移动应用程序、Web服务等。

基本原理

Jetty的核心是一个HTTP服务器,它可以处理HTTP请求,并将其转发给应用程序层,从而实现Web应用程序的构建和部署。


Netty 是一个基于Java NIO的客户端服务器通信框架,用于快速开发可维护的高性能协议服务器和客户端程序。
Netty可以让开发人员简化网络编程,提供易于使用的API来简化复杂的网络编程,比如TCP和UDP socket服务器。

优势

Netty拥有灵活的编程接口,可以快速构建可扩展的协议服务器和客户端程序,可以支持多种网络协议,提供可靠的网络服务,拥有高性能的网络I/O,可以支持高并发连接,并且拥有可插拔的编解码器。

劣势

Netty不支持JSP和Servlet,不支持EJB,不支持重新加载Web应用程序,也不支持HTTP/2协议。

应用场景

Netty可以用于构建分布式系统,比如消息队列,网络通信系统,网络游戏,分布式应用程序等。

基本原理

Netty的核心是一个NIO框架,它可以处理不同的网络协议,并将其转发给应用程序层,从而实现网络服务的构建和部署。


Jetty Netty Tomcat Undertow
核心原理 基于Servlet容器 基于NIO框架 基于Servlet容器 基于NIO框架
运行环境 Java Servlet API Java NIO Java Servlet API Java NIO
运行方式 同步阻塞 同步非阻塞 同步阻塞 同步非阻塞
适用场景 后端Web服务器 构建分布式系统 后端Web服务器 后端Web服务器

Servlet

Servlet 是一种运行在 Web 服务器上的 Java 小程序,它主要负责处理客户端发出的 HTTP 请求,并且生成响应给客户端的结果,Servlet 把客户端发出的请求
(可能是一个 HTML 表单)作为输入,并产生一个动态的 Web 页面作为输出,它主要用于动态地交互式地生成内容,而不是生成一个静态的 HTML 页面,Servlet
的核心是Java API(应用程序编程接口),它主要包括了以下几个核心的包:

  1. servlet:Servlet 核心的接口,它定义了 Servlet 的生命周期,由容器调用;
  2. servlet-api:Servlet 接口的实现;
  3. javax.servlet.http:定义用于处理 HTTP 请求和响应信息的接口;
  4. javax.servlet.jsp:定义用于处理 JSP 文件的接口;
  5. servlet-context:定义用于访问 Web 应用程序上下文的接口;
  6. servlet-config:定义用于访问 Servlet 配置信息的接口。
相关文章
|
4月前
|
JSON 分布式计算 网络协议
netty实现tomcat(简易版)
netty实现tomcat(简易版)
58 0
|
安全 Java 应用服务中间件
吊打 Tomcat ,Undertow 性能很炸!!
吊打 Tomcat ,Undertow 性能很炸!!
910 0
吊打 Tomcat ,Undertow 性能很炸!!
|
中间件 Java 应用服务中间件
Web中间件——Tomcat与Jetty的对比
日常我们在开发Web程序时常常会使用到Web中间件,其比较常用的中间件中就包含了Tomcat和Jetty,本篇文章,我们对其进行简单的描述一下,看其都可以实现什么。
376 5
Web中间件——Tomcat与Jetty的对比
|
监控 Java 应用服务中间件
美团动态线程池思路开源框架(DynamicTp),动态调整Tomcat、Jetty、Undertow线程池参数篇
大家好,这篇文章我们来介绍下动态线程池框架(DynamicTp)的adapter模块,上篇文章也大概介绍过了,该模块主要是用来适配一些第三方组件的线程池管理,让第三方组件内置的线程池也能享受到动态参数调整,监控告警这些增强功能。
815 1
美团动态线程池思路开源框架(DynamicTp),动态调整Tomcat、Jetty、Undertow线程池参数篇
|
Java 应用服务中间件 Maven
SpringBoot替换web容器tomcat为undertow或者指定版本
SpringBoot替换web容器tomcat为undertow
1344 0
SpringBoot替换web容器tomcat为undertow或者指定版本
|
Java 应用服务中间件 Android开发
Jetty和Tomcat
最近在学习Gitee里面的Star项目,发现有些项目已经开始使用Jetty,大致查了一下发现,Google已经放弃了Tomcat,把一些服务迁移到了Jetty上,对于这个黑马,我挺感兴趣的,所以把它的大致情况也整理分享下
1551 0
|
XML Java 应用服务中间件
Jetty基本介绍 及 与tomcat对比
一、Jetty目录剖析 bin:可执行脚本文件 demo- base: etc:Jetty模块定义的XML配置文件的目录 lib:Jetty依赖的库文件 logs:Jetty的日志目录 modules:Jetty的模块 resources:外部资源配置文件的目录 webapps:项目WAR文件的目录还需要关心根目录下的一个文件:start.d(Wondows系统是start.ini文件),它定义了Jetty的活动模块。
1220 0
|
Java 测试技术 数据库连接
|
应用服务中间件 容器 Java