深入拆解Tomcat & Jetty(三)

Jetty的架构

Jetty Server 就是由多个Connector(连接器)、多个Handle(处理器)、以及一个线程池组成。

 Jetty Connector 的工作原理

1、Acceptor 监听连接请求,当有连接请求到达时就接受连接,一个连接对应一个 Channel,Acceptor 将 Channel 交给 ManagedSelector 来处理。

2、ManagedSelector 把 Channel 注册到 Selector 上,并创建一个 EndPoint 和 Connection 跟这个 Channel 绑定,接着就不断地检测 I/O 事件。

3、I/O 事件到了就调用 EndPoint 的方法拿到一个 Runnable,并扔给线程池执行。

4、线程池中调度某个线程执行 Runnable。

5、Runnable 执行时,调用回调函数,这个回调函数是 Connection 注册到 EndPoint 中的。

6、回调函数内部实现,其实就是调用 EndPoint 的接口方法来读数据。

7、Connection 解析读到的数据,生成请求对象并交给 Handler 组件去处理。

 Jetty Handle的工作原理

1、Handle就是一个接口,它有一堆实现类,Jetty的Connector组件调用这些接口来处理Servlet请

 Jetty Handle的类型

1、协调Handle:这种 Handler 负责将请求路由到一组 Handler 中去,

2、过滤器Handle:这种 Handler 自己会处理请求,处理完了后再把请求转发到下一个 Handler,

3、内容Handle:这些 Handler 会真正调用 Servlet 来处理请求,生成响应的内容,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值