Jetty架构和实现分析
架构分析
Jetty的架构,可以参见Jetty 7 Architecture,里面的内容包括了Jetty总体设计以及各个部分的实现方式。文档虽然有点儿旧,但是Jetty的架构设计基本没有什么大的变化,所以参考价值很高。
实现分析
代码组织方式
eclipse/jetty.project使用Maven管理项目,一个主要功能都是项目的一个子模块。
<modules>
<module>jetty-ant</module>
<module>jetty-util</module>
<module>jetty-jmx</module>
<module>jetty-io</module>
<module>jetty-http</module>
<module>jetty-http2</module>
<module>jetty-continuation</module>
<module>jetty-server</module>
...
</modules>
我们分析Jetty的实现,从jetty-server这个模块入手。
jetty-server分析
从Jetty的架构可知,Server
主要包括几个部分:
- Connector
- Handler
- ThreadPool
同时由下面的Server的一部分成员变量也可以清楚地知晓。
@ManagedObject(value="Jetty HTTP Servlet server")
public class Server extends HandlerWrapper implements Attributes
{
private static final Logger LOG = Log.getLogger(Server.class);
private final AttributesMap _attributes = new AttributesMap();
private final ThreadPool _threadPool;
private final List<Connector> _connectors = new CopyOnWriteArrayList<>();
private SessionIdManager _sessionIdManager;
private boolean _stopAtShutdown;
private boolean _dumpAfterStart=