Tomcat设计原理个人学习理解
在看How Tomcat Works,收获颇深,结合最近看的代码和个人理解写些个人心得
1、Tomcat对每个request的管理
在org.apache.catalina.connector.http包下,有个HttpConnector连接器类。
它的工作过程是,先打开SocketServer端口,设置HttpProcessors的List大小,用于限制连接者数量。
当有一个http请求时,HttpConnector将请求都的socket交给HttpProcessor,由它负责创建HttpRequest和HttpResponse。由HttpResponse和HttpRequest对象来处理请求和返回响应请示结果。
2、Tomcat对多线程管理
HttpConnector类有的工作是监听请求。当有请求时,将请求交给HttpProcessor。因HttpProcessor继承Runnable接口,而HttpConnector类中可设置HttpProcessor堆栈数量。通过HttpProcessor来作多线程处理。
3、Tomcat对事件监听的处理方式
tomcat在很多地方通过观察者模式来实现消息订阅,请看以下代码:
?
?
public void stop() throws LifecycleException;
?
}
?
4、Tomcat分布式部署
?
5、Tomcat异常处理机制
tomcat异常处理对多国语言的支持,Tomcat在Util中有个类“StringManager”,通过调用getString方法到获得异常信息多国语言支持。