Jetty 核心架构分析
来源:互联网 发布:linux 登录root 编辑:程序博客网 时间:2024/06/06 03:08
Jetty 是由一个或多个 Connector 核心组件以及一些列 Handler 组件和一个线程池组成,看一下结构图:
Connector 负责监听接收客户连接请求,而 Handler 组件则负责处理请求并给予响应,前面两个组件工作所需要的线程资源都直接从线程池 ThreadPool 中获取。 Jetty Server 可以有多个 Connector 在不同的端口上监听客户请求,而每个 connector 根据具体的使用场景不同可以有不同的实现,例如采用非阻塞 NioConnector 、阻塞 SocketConnector 等等,而对于请求处理的handler 组件,也根据具体需要可以使用不同的 Handler ,此种设计提高了 jetty 的灵活性,需要 Servlet ,则可以使用ServletHandler ,需要 Session ,则再增加一个 SessionHandler ,也就是说我们完全可以不使用 Servlet 或者 Session ,只要不配置这个 Handler 就行了。
要启动和协调上诉核心组件工作, Jetty 提供了一个 Server 类来做这个事情 , 也就是说 Server 是应用的起始点,他负责创建并初始化 Connector 、 Handler 、 ThreadPool 组件,然后调用 start 方法启动他们,让所有组件都处于待命状态,因此 Server 类是一个比较重要的 Façade, 值得注意的 Server 类本身也是一个 handler.
一、组件生命周期
对于 Jetty 来说,每个组件都有其生命周期, Jetty 采用了统一的 LifeCyle 接口来控制,我们来看下,类图结构:
Connector,Handler 等组件全部都直接或间接实现了 LifeCyle 接口,刚才说了 Server 也是 Handler ,同时他也是启动或协调组件工作的类,也就是说 Server 可以通过 LifeCyle 接口控制其他组件的生命周期,通过 start 方法可以启动 Server, 通过 stop 则关闭了 Server 。
二、Connector 组件
Connnetor 在实现上有NIO 、BIO 两种实现方式,并且支持AJP 协议、和SSL 。
三、Handler 组件
所有的 handler 组件都实现了 Handler 接口,可以看到, Handler 是可以以链表的形式相互组合的, Server 作为服务入口,本身也是 Handler ,他继承了 HandlerWrapper 接口,我们看以看到他带了一个 handler 的引用变量,我们可以注入 ServletHandler 支持 Servlet, 注入 WebAppContext 则支持我们的 webapp 应用。
- Jetty 核心架构分析
- Jetty 核心架构分析
- Jetty 服务器架构分析
- Jetty架构分析
- Jetty 服务器架构分析(上)
- Jetty 服务器架构分析(中)
- Jetty 服务器架构分析(下)
- Jetty 服务器架构分析(上)
- Jetty架构和实现分析
- Jetty 架构
- Jetty 架构
- Jetty架构
- Jetty分析
- Jetty 分析
- 企业架构-分析的核心思路
- Windows 7核心图形架构细致分析
- python twisted 核心架构 分析体会
- OpenStack高可用核心架构分析
- 看《世界上最伟大的推销员》
- 更改电脑的硬盘启动模式IDE--AHCI
- 在Struts2拦截器中获取请求action名称及参数
- 二叉堆
- Linux route 使用
- Jetty 核心架构分析
- Sizeof与Strlen的区别与联系
- SPRING整合JMS进行网络通信
- eclipse为java类添加版权注释
- 轻量级虚机:CGroup、LXC、Warden
- 每天一个linux命令(10):cat 命令
- 关于指针和const限定符问题的一个简单判断方法
- C++标准模板库 迭代器 iterator 详解(二)
- 把握销售中的八个细节使用适当字眼