Jetty基本介绍
Jetty是一个servlet引擎,架构简单,可拓展性强。
Jetty的核心为Server和Connector两个组件,整个Server组件基于Handler容器工作的,类似Tomcat中的Container容器。Connector接收客户端的连接请求,并将请求分配给一个处理队列去执行。
Jetty所有组件的生命周期管理是基于观察者模板设计。
它有一个基本的数据模型,这个模型就是Handler,里面放servlet?所有可以被扩展的组件可以作为一个Handler添加到Server,Jetty会帮你管理这些Handler。
Handler
主要有两种类型,一种为HandlerWrapper,可以将一个Handler交给另外一个类来执行操作。另一种是HandlerCollection,这Handler类可以将多个Handler组装在一起,构成Handler链。
Jetty的启动
Jetty的入口是Server类,Server类启动完成就能调用其他组件的start方法,提供服务。
从另外一个角度来看,就是Server启动设置到Server的Handler,然后这些Handler有各种子Handler,形成一条条Handler链,Server一个个启动,接着会启动注册在Server中JMX上的Mbean等,最后会启动Connector,打开端口,接收客户请求。
Jetty的其他特性
Jetty是一个独立的Servlet引擎,可以直接提供web服务,但也可以集成到其他web应用服务器。
倘若作为独立引擎,他就基于http工作,倘若作为架构其中一部分则基于AJP工作
Web服务端架构示意
http请求->Apache/Nginx->AJP协议->Jboss->Tomcat/Jetty->基于servlet的工作
Jetty适合同时处理大量连接并且能长时间保持这些连接,且其架构简单,所以无形之中可以减少服务器本身的内存开销。