Jetty-的工作原理以及与-Tomcat-的比较.doc
文本预览下载声明
Jetty 的工作原理以及与 Tomcat 的比较
HYPERLINK /developerworks/cn/java/j-lo-jetty/index.html \l author1#author1 许 令波, Java 工程师, 淘宝网
简介:?Jetty 应该是目前最活跃也是很有前景的一个 Servlet 引擎。本文将介绍 Jetty 基本架构与基本的工作原理:您将了解到 Jetty 的基本体系结构;Jetty 的启动过程;Jetty 如何接受和处理用户的请求。你还将了解到 AJP 的一些细节:Jetty 如何基于 AJP 工作;以及 Jetty 如何集成到 Jboss;最后我们将比较一下两个 Servlet 引擎:Tomcat 和 Jetty 的优缺点。
发布日期:?2011 年 9 月 21 日 级别:?高级 访问情况 :?44952 次浏览 评论:?11?( HYPERLINK /developerworks/cn/java/j-lo-jetty/index.html \l icomments#icomments 查看?|? HYPERLINK /developerworks/cn/java/j-lo-jetty/index.html \l # 添加评论 - 登录)
平均分 (159个评分) HYPERLINK /developerworks/cn/java/j-lo-jetty/index.html \l iratings#iratings 为本文评分
Jetty 的基本架构
Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler。
Jetty 的基本架构
下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector 两个组件构成,整个 Server 组件是基于 Handler 容器工作的,它类似与 Tomcat 的 Container 容器,Jetty 与 Tomcat 的比较在后面详细介绍。Jetty 中另外一个比不可少的组件是 Connector,它负责接受客户端的连接请求,并将请求分配给一个处理队列去执行。
图 1. Jetty 的基本架构
Jetty 中还有一些可有可无的组件,我们可以在它上做扩展。如 JMX,我们可以定义一些 Mbean 把它加到 Server 中,当 Server 启动的时候,这些 Bean 就会一起工作。
图 2. Jetty 的主要组件的类图
从上图可以看出整个 Jetty 的核心是围绕着 Server 类来构建,Server 类继承了 Handler,关联了 Connector 和 Container。Container 是管理 Mbean 的容器。Jetty 的 Server 的扩展主要是实现一个个 Handler 并将 Handler 加到 Server 中,Server 中提供了调用这些 Handler 的访问规则。
整个 Jetty 的所有组件的生命周期管理是基于观察者模板设计,它和 Tomcat 的管理是类似的。下面是 LifeCycle 的类关系图
每个组件都会持有一个观察者(在这里是 Listener 类,这个类通常对应到观察者模式中常用的 Observer 角色,关于观察者模式可以参考 HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html 《 HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html Tomcat HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html 系统架构与设计模式,第 HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html 2 HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html 部分 HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html : HYPERLINK /developerworks/cn/java/j-lo-tomcat2/index.html 设计模式分析》一文中关于观察者模式的讲解)集合,当 start、fail 或 stop 等事件触发时,这些 Listen
显示全部