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应用部署方式:
- 将war包直接放到根目录下的的webapps中,可解压成ROOT目录,便可不需要添加上下文路径即可访问
- 将war包放到demo-base目录下的webapps中
jetty学习小结的更多相关文章
- flex学习小结
接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)
react学习小结 本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...
- objective-c基础教程——学习小结
objective-c基础教程——学习小结 提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...
- pthread多线程编程的学习小结
pthread多线程编程的学习小结 pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写 程序员必上的开发者服务平台 —— DevSt ...
- ExtJs学习笔记之学习小结LoginDemo
ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- 点滴的积累---J2SE学习小结
点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...
- (转) Parameter estimation for text analysis 暨LDA学习小结
Reading Note : Parameter estimation for text analysis 暨LDA学习小结 原文:http://www.xperseverance.net/blogs ...
- dubbo学习小结
dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...
随机推荐
- C++嵌套类及对外围类成员变量的访问
C++嵌套类及对外围类成员变量的访问 在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类. 定义嵌套类的目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象.这样可以提高类的抽象能 ...
- UVA 10229 Modular Fibonacci
斐波那契取MOD.利用矩阵快速幂取模 http://www.cnblogs.com/Commence/p/3976132.html 代码: #include <map> #include ...
- 4.DataFrame(快速开始)
快速开始 基本概念 ''' 在使用 DataFrame 时,需要了解三个对象上的操作:Collection(DataFrame) ,Sequence,Scalar Collection(DataFra ...
- 使用EventHandler传递参数
1.MouseEventHandler和EventHandler传递参数的局限性分析 开发过程中,特别是使用自定义控件时,常常需要对一个控件的click,mouseDown,mouseUp等事件的处理 ...
- Visual Studio跨平台开发(3):Xamarin iOS多页面应用开发
前言 在前一篇教学中, 我们学会如何使用Visual Studio 搭配Xcode进行iOS基本控制项的操作. 但都是属于单一画面的应用程式. 这次我们要来练习如何通过Navigation Contr ...
- 分享Kali Linux 2017年第23周镜像文件
分享Kali Linux 2017年第23周镜像文件 Kali Linux官方于6月4日发布2017年的第23周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KDE. ...
- Unity3d之MonoBehavior的各个函数的执行顺序,回调,顺序,次数等
Update 当MonoBehaviour启用时,其Update在每一帧被调用.仅调用一次(每帧) LateUpdate 当Behaviour启用时, 每帧调用一次: FixedUpdate 当Mo ...
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】
方法1:通过get()方法获取属性值 package com.sxd.test.controller; public class FirstCa{ private Integer num; priva ...
- [置顶]
kubernetes资源类型--Service
为了适应快速的业务需求,微服务架构已经逐渐成为主流,微服务架构的应用需要有非常好的服务编排支持.K8S中的核心要素Service便提供了一套简化的服务代理和发现机制,天然适应微服务架构. 实现原理 S ...
- nginx $document_uri 参数使用
$document_uri 表示访问的url 现在我的需求是,访问 www.abc.com 请求到 www.abc.com/abc/在nginx配置文件中加入 if ($document_uri ...