zoukankan      html  css  js  c++  java
  • Java Web 深入分析(7) Jetty原理解析

    1Jetty的基本架构

    Jetty有一个基本的数据模型,这个模式就是handle,所有拷贝拓展的组件都被当做一个handler被添加到server中,然后由jetty统一管理。

    1.1Jetty基本架构简介

    如图Jetty核心是由Server和Connector两个组件构成的,整个jetty是基于handle容器工作的,它类似tomcat的Connector容器;
    


    如图,jetty还有其他一些可有可无的组件构成,可以在其上面拓展,这也是jetty受欢迎的原因吧。如JMX(Java Management Extensions,即Java管理扩展) 我们可以把自己的MBean 加入到Server中,当server启动时这些类便会跟着启动.
    图中可看出jetty主要是围绕server来构建 ,server类继承handler,并关联了Container和connector,container就是MBean的管理容器,mbean 被看做一个个handler被配进server中,由server提供调用规则。

    MBean(描述一个可管理的资源。是一个java对象,遵循以下一些规则:1.必须是公用的,非抽象的类 2.必须有至少一个公用的构造器 3.必须实现它自己的相应的MBean接口或者实现javax.management.DynamicMBean接口4.可选的,一个MBean可以实现javax.management.NotificationBroadcaster接口MBean的类型)
    如图jetty所有组件的生命周期的管理都是基于观察者模式设计的,这个类似tomcat不过更简单

    如图jetty主要是基于handle来设计

    2Jetty启动过程

    2.1接受请求: HTTP 和AJP

    2.1.1HTTP

    2.1.2AJP

    通常一个应用服务器不是直接将Java后台服务直接暴露给访问者,而是如图这种结构。

    和HTTP对比最大的区别点在于Ajp13SocketConnector替代了 SocketConnector,表示当前连接使用AJP.

    AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过 TCP连接 和 SERVLET容器连接。

  • 相关阅读:
    51 Nod 1086 多重背包问题(单调队列优化)
    51 Nod 1086 多重背包问题(二进制优化)
    51 Nod 1085 01背包问题
    poj 2559 Largest Rectangle(单调栈)
    51 Nod 1089 最长回文子串(Manacher算法)
    51 Nod N的阶乘的长度 (斯特林近似)
    51 Nod 1134 最长递增子序列(经典问题回顾)
    51 Nod 1020 逆序排列
    PCA-主成分分析(Principal components analysis)
    Python中cPickle
  • 原文地址:https://www.cnblogs.com/humi/p/8120504.html
Copyright © 2011-2022 走看看