Tomcat启动流程
2021-04-15 22:08:37 34 举报
tomcat启动流程分析图
作者其他创作
大纲/内容
默认10个等待处理
虚拟主机Host
ProtocolHandler.start()协议处理器启动
启动自己的管道pipline
getServer.await()服务器while接受数据8005端口
daemon.load(args)加载信息,解析了xml
Connector
ServerSocket绑定好
globalNamingResource.startJNDI功能启动
拿到Catalina类
getServer.init()服务器初始化
getServer.start()服务器启动
service.start所有的Service启动
globalNamingResources.initJNDI初始化
protocolHander.init协议处理器的初始化
单线程准备一个Acceptor8080
BootStrap.init
启动work线程池
Tomcat的三个类加载器
endpoint.init端口初始化
daemon.start服务器启动逻辑
解析服务器的Server.xml文件
具体实现
service.init所有的Service初始化
AdapterCoyoteAdapter
Host里面并不会在此时扫描到所有应用Context的存在
先让Engine.start()
endpoint.start()端点启动
再让Connector.start()
反射执行Catalina.load方法
ProtoclHandlerHttp11NioProtocol
先让Engine.init()
给StartChild.call打断点就可以监控把所有的阀门设置好
配置文件的每一个标签对应一个类,创建对象封装好标签配置的属性内容
ServerSocket.accept二进制流
StandardEngine.startInternalStandardHost.startInternalStandardContext.startInternalStandardWapper.startInternal
Tomcat启动流程Bootstrap.main打断点就ok
ServerSocketChannel.accpet 接受端口来的数据端口开启一个线程在后台接受数据
解析命令,默认是start
再让Connector.init()
单线程启动Poller
0 条评论
下一页