锁定老帖子 主题:Tomcat 源代码分析之Socket通讯
精华帖 (2) :: 良好帖 (1) :: 新手帖 (12) :: 隐藏帖 (1)
|
|||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||
发表时间:2012-02-10
最后修改:2012-02-10
Tomcat 源代码分析之Socket通讯此系列文章皆为Tomcat 7.0代码代码分析。
1. Socket通讯:Tomcat对于 Socket的处理方式主要分为以下几种:
2. 模型介绍Connector由ProtocolHandler和一个连接端口组成,ProtocolHandler使用以上介绍的各种方式处理Socket。 根据配置选取不同的ProtocolHandler实现类的代码如下:
其相应的配置例子如下:
Connector调用ProtocolHandler对象处理Socket,主要代码在该Connector类的startInternal()里,如下
而ProtocolHandler对象会启动一个相应的AbstractEndpoint对象来创建ServerSocket,监听服务相应的端口,并启动线程池处理消息。 ProtocolHandler对象启动AbstractEndpoint对象的代码在org.apache.coyote.AbstractProtocolHandler类里,如下:
各种不同的ProtocolHandler对应的AbstractEndpoint如下:
不同协议处理方式请看这个类的实现:AprEndpoint,JIoEndpoint,NioEndpoint。 JIoEndpoint采用BIO方式处理,NioEndpoint采用NIO的方式处理,AprEndpoint调用大量的Poll的大量native方法处理Socket。具体不再一一介绍。 我们最后为这三个组件画出一个简单的模型,如下:
3. Tomcat中Server,Service和Connector之间的关系:一个Server包含多个Service,而一个Service由多个Connector组成。 一个Server对应一个Servlet容器的实例,而一个Service可以由多个Connector组成,但是这些Connector必须是一个Engine的,Engine代表一台实际的物理或者虚拟机器,因为Tomcat可以实现集群的,配置片段示例如下:
今天就讲到这里了,后续继续把自己已看的东西整理出来。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||
返回顶楼 | |||||||||||||
发表时间:2012-02-11
看这些还是把http协议,sun发起起草的web容器规范看看比较好,直接看源码,好比从页之找跟,有了这些规范后和基础知识后,看起来才不会“走失”
|
|||||||||||||
返回顶楼 | |||||||||||||
发表时间:2012-02-12
Mojarra 写道 看这些还是把http协议,sun发起起草的web容器规范看看比较好,直接看源码,好比从页之找跟,有了这些规范后和基础知识后,看起来才不会“走失”
规范是规范,里面很少讲述实现的,同样,只会使用spring却没看过spring代码的人,一样只能知其然,不知其所以然,整天跟着使用技术跑了。每个月诞生很多新框架,那还不累死? |
|||||||||||||
返回顶楼 | |||||||||||||
发表时间:2012-02-13
redhat 写道 Mojarra 写道 看这些还是把http协议,sun发起起草的web容器规范看看比较好,直接看源码,好比从页之找跟,有了这些规范后和基础知识后,看起来才不会“走失”
规范是规范,里面很少讲述实现的,同样,只会使用spring却没看过spring代码的人,一样只能知其然,不知其所以然,整天跟着使用技术跑了。每个月诞生很多新框架,那还不累死? 你们两个说的话其实不矛盾,意思可能还是相同的。 |
|||||||||||||
返回顶楼 | |||||||||||||
发表时间:2012-02-13
pengmj 写道 redhat 写道 Mojarra 写道 看这些还是把http协议,sun发起起草的web容器规范看看比较好,直接看源码,好比从页之找跟,有了这些规范后和基础知识后,看起来才不会“走失”
规范是规范,里面很少讲述实现的,同样,只会使用spring却没看过spring代码的人,一样只能知其然,不知其所以然,整天跟着使用技术跑了。每个月诞生很多新框架,那还不累死? 你们两个说的话其实不矛盾,意思可能还是相同的。 |
|||||||||||||
返回顶楼 | |||||||||||||
发表时间:2012-02-14
redhat 写道 pengmj 写道 redhat 写道 Mojarra 写道 看这些还是把http协议,sun发起起草的web容器规范看看比较好,直接看源码,好比从页之找跟,有了这些规范后和基础知识后,看起来才不会“走失”
规范是规范,里面很少讲述实现的,同样,只会使用spring却没看过spring代码的人,一样只能知其然,不知其所以然,整天跟着使用技术跑了。每个月诞生很多新框架,那还不累死? 你们两个说的话其实不矛盾,意思可能还是相同的。 |
|||||||||||||
返回顶楼 | |||||||||||||
浏览 9347 次