Jetty、Netty、Tomcat、Undertow

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
应用实时监控服务-应用监控,每月50GB免费额度
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 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 配置信息的接口。
目录
打赏
0
0
0
0
164
分享
相关文章
netty实现tomcat(简易版)
netty实现tomcat(简易版)
154 0
美团动态线程池思路开源框架(DynamicTp),动态调整Tomcat、Jetty、Undertow线程池参数篇
大家好,这篇文章我们来介绍下动态线程池框架(DynamicTp)的adapter模块,上篇文章也大概介绍过了,该模块主要是用来适配一些第三方组件的线程池管理,让第三方组件内置的线程池也能享受到动态参数调整,监控告警这些增强功能。
931 1
美团动态线程池思路开源框架(DynamicTp),动态调整Tomcat、Jetty、Undertow线程池参数篇
Jetty和Tomcat
最近在学习Gitee里面的Star项目,发现有些项目已经开始使用Jetty,大致查了一下发现,Google已经放弃了Tomcat,把一些服务迁移到了Jetty上,对于这个黑马,我挺感兴趣的,所以把它的大致情况也整理分享下
1597 0
idea/eclipse下Maven工程集成web服务(tomcat、jetty)
idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html     应用服务器最常用的一般有这哥仨:tomcat、jetty、webLogic ,前两者开源属轻量级应用服务器,适用于一般项目开...
1952 0
Jetty基本介绍 及 与tomcat对比
一、Jetty目录剖析 bin:可执行脚本文件 demo- base: etc:Jetty模块定义的XML配置文件的目录 lib:Jetty依赖的库文件 logs:Jetty的日志目录 modules:Jetty的模块 resources:外部资源配置文件的目录 webapps:项目WAR文件的目录还需要关心根目录下的一个文件:start.d(Wondows系统是start.ini文件),它定义了Jetty的活动模块。
1273 0
跟着源码学IM(十一):一套基于Netty的分布式高可用IM详细设计与实现(有源码)
本文将要分享的是如何从零实现一套基于Netty框架的分布式高可用IM系统,它将支持长连接网关管理、单聊、群聊、聊天记录查询、离线消息存储、消息推送、心跳、分布式唯一ID、红包、消息同步等功能,并且还支持集群部署。
13601 1
Netty 源码共读(一)如何阅读JDK下sun包的源码
Netty 源码共读(一)如何阅读JDK下sun包的源码
191 1
跟着源码学IM(十二):基于Netty打造一款高性能的IM即时通讯程序
关于Netty网络框架的内容,前面已经讲了两个章节,但总归来说难以真正掌握,毕竟只是对其中一个个组件进行讲解,很难让诸位将其串起来形成一条线,所以本章中则会结合实战案例,对Netty进行更深层次的学习与掌握,实战案例也并不难,一个非常朴素的IM聊天程序。 原本打算做个多人斗地主练习程序,但那需要织入过多的业务逻辑,因此一方面会带来不必要的理解难度,让案例更为复杂化,另一方面代码量也会偏多,所以最终依旧选择实现基本的IM聊天程序,既简单,又能加深对Netty的理解。
201 1

云原生

+关注