jetty学习小结

1.什么是jetty?

开源HTTP服务器和Servlet引擎,是web应用的容器,同tomcat类似。由于其轻量灵活的特性,很多知名产品也应用了它,如maven、eclipse、hadoop、spark、activeMQ

2.为什么使用jetty?

  • 异步的Servlet,支持更高的并发量(异步Servlet是Servlet3.0原生的东西,只是jett中的Continuation使它更高效)
  • 模块化设计,更灵活易定制,也意味着更高的资源利用率(如久其现在使用的各个jar,模块化然后集中管理)
  • 在面对大量长连接的业务场景下,jetty默认采用的NIO(非阻塞)模型是更好的选择
  • 将jetty嵌入到应用中,能够使一个普通应用快速支持http服务(不再将应用放进web容器中,而是将jetty嵌入到应用中)

3.jetty的基本架构?

核心组件是Server和Handler,jetty中的所有组件都是基于Handler来实现的,包括Server。

4.与tomcat对比?

  • jetty更容易集成第三方框架,比如可以直接用Spring配置一个Jetty服务器
  • 直接将jetty作为提供http服务的组件嵌入到应用中
  • jetty是面向handler的架构,而tomcat是面向容器的
  • jetty默认使用NIO,tomcat使用BIO
  • jetty高度模块化,可以很灵活管理拓展去除组件,tomcat则很难管理其它组件

5.使用jetty?

版本选择:9.2版本必须使用java7+,9.3必须java8+

项目结构:

  • bin:可执行脚本文件(启动脚本)
  • etc: Jetty 的配置目录 & 模块相关的配置
  • modules:模块目录,存放 xxx.mod 配置文件
  • resources:classpath 下的附加资源配置目录,如 log4j.properties
  • webapps:应用部署位置,可以是 web 应用目录,也可以是 war 文件
  • lib:Jetty 所依赖的 jar 文件,以及模块所依赖的 jar
  • logs:日志目录
  • demo-base:Jetty 默认的演示程序
  • start.ini:Jetty 默认的配置文件
  • start.jar:运行 Jetty 的 jar

启动jetty服务器:

  • 在当前目录下执行java -jar start.jar,启动的就是当前根目录webapps下的程序

常用配置

  • start.ini:服务启动配置项
  • etc/xxx.xml:Jetty 服务相关配置
  • modules/xxx.mod:模块相关配置

6.Jetty模块化

  • 单体应用架构:更新任意应用服务需要重启整个应用
  • 微服务架构:将需求模块拆分服务,单个服务更新不影响其它服务

7.web应用部署方式:

  1. 将war包直接放到根目录下的的webapps中,可解压成ROOT目录,便可不需要添加上下文路径即可访问
  2. 将war包放到demo-base目录下的webapps中

原文地址:https://www.cnblogs.com/mabaoqing/p/10346521.html

时间: 2024-10-15 05:24:45

jetty学习小结的相关文章

git学习小结

背景:最近因为工作原因,需要将以前的代码库由bitbucket重新布置在一台服务器上,所以就学习了下git,特此记录下 在167这台机器上搭建apache,用做git server,由于以前apache都已经搭好了,所以这里只配置git server 就可以了,此处贴出配置: 服务器搭好了,来到配置中的root目录,git clone https://[email protected]/XXXX 此时,库和服务器都搭好了,用于新库测试的机器也可以从git server上克隆库了,来,我们来试试从

网络编程学习小结

几种网络编程方式: ISAPI.CGI.WinInet.Winsock 它们之间的差别: 1)  ISAPI主要是开发基于浏览器client与server端程序.效率比CGI方式高,并且也扩展了CGI没有的一些功能.(基于TCP/IP模型中的应用层) 2)  CGI主要是开发基于浏览器client与server端程序.(基于TCP/IP模型中的应用层) 3)  WinInet主要是开发client程序.(基于TCP/IP模型中的应用层) 4)  Winsock主要是基于socket来开发clie

Jetty学习三:配置概览-需要配置什么

上一节讲述了怎么配置Jetty,这节将告诉你使用Jetty你需要配置些什么. 配置Server Server实例是Jetty服务端的中心协调对象,它为所有其他Jetty服务端组件提供服务和生命周期管理.在标准Jetty发布中,核心的服务端配置是在etc/jetty.xml文件中,你也能在其中包含其他服务端配置,可以包括: 1)ThreadPool Server实例提供了一个线程池,你可以在etc/jetty.xml中配置最大线程数和最小线程数. 2)Handlers Jetty服务端只能有一个H

MogileFS学习小结

大纲: 一.关于MogileFS 二.常见分布式文件系统 三.MogileFS基本原理 四.MogileFS的实现 一.关于MogileFS 当下我们处在一个互联网飞速发展的信息社会,在海量并发连接的驱动下每天所产生的数据量必然以几何方式增长,随着信息连接方式日益多样化,数据存储的结构也随着发生了变化.在这样的压力下使得人们不得不重新审视大量数据的存储所带来的挑战,例如:数据采集.数据存储.数据搜索.数据共享.数据传输.数据分析.数据可视化等一系列问题. 传统存储在面对海量数据存储表现出的力不从

201671010130 2016-2017-2 《Java程序设计》第四周学习小结

第四周学习小结 本次实验巩固了上次实验分隔数并求和的题,目前这个题有两种做法,一种是不断对数10求余,余数保存在sum中,然后左移一位,直到余数为零.另一种就是将数字强制转换成一个字符串数组String s=String.valueOf(num),根据方法s.toCharArray()将字符分离出来,据"x"-"0"=x,unicode码值相减即可得x的值. 父类和子类能够看两个交集,super关键字是否能够看做一个子类和超类的接口呢? 在子类中可以增加域.增加方法

初识ASP.NET---点滴的积累---ASP.NET学习小结

差不多十多天前学习完了北大青鸟的学习视频,没想到没几天的时间就看完了XML视频和牛腩的Javascript视频.学习完了也该总结总结,理理自己的思路,消化一下自己学习到的东西. 视频中的理论知识并不是很多,以例子驱动学起来也不会他过于乏味.全部的学习内容大概的可以用下图表示. 个人感觉这套视频的体系感不是很强,每一集之间老师的串联并不是做得很好,向我等没有教材的有些小的知识无从知晓.但是不能不说这套视频确很适合初学者学习,老师讲解的也不错,从此我也算是入门. 当然要想进一步的了解ASP.NET并

Jetty学习二:配置概览-怎么配置Jetty

Jetty POJO配置 Jetty的核心组件是Plain Old Java Objects(POJOs):配置Jetty的大部分工作就是在Jetty POJOs上的初始化.装配和设置域的处理,你能通过以下的方式来实现:  1)直接通过Java代码初始化和装配Jetty对象.这个在后面Embedding Jetty讲. 2)用Jetty XML配置(一个控制反转(IoC)框架)初始化和装配Jetty对象.etc/jetty.xml文件是基本的Jetty XML配置文件,但有一些其它的etc/je

8086汇编学习小结———实时更新

初学IBM-PC 8086,对INT指令不是很理解.现从网上总计如下: 表:DOS系统功能调INT 21H AH 功能 调用参数 返回参数 00 程序终止(同INT 20H) CS=程序段前缀 01 键盘输入并回显 AL=输入字符 02 显示输出 DL=输出字符 03 异步通迅输入 AL=输入数据 04 异步通迅输出 DL=输出数据 05 打印机输出 DL=输出字符 06 直接控制台I/O DL=FF(输入)DL=字符(输出) AL=输入字符 07 键盘输入(无回显) AL=输入字符 08 键盘

《Pro AngularJS》学习小结-01

<Pro AngularJS>该书以一个SportsStore案例为主线铺开. 一.开发环境设置 该书中所用的server开发环境是Deployed,从来没听说过,而且作者也说该server没什么人用,我干脆弃用之.其他的环境包括 NodeJS--这个必须装 karma--测试环境,前期还没有用到,以后认真研究,毕竟AngularJS一大特点是Unit Test bootstrap--这个现在应该普遍使用了,O(∩_∩)O webstorm--现在唯一支持AngularJS插件的IDE 我基本