资源描述:
《应用服务架构及调优》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、应用服务器架构及调优JBossTomcatJetty玄宵&杨朱1引子•阿里巴巴使用java服务器现状–淘宝•Jboss(线上大部分应用)•Jetty(topweb旺旺)•Tomcat(阿里金融)–B2B•Jetty(中文站)•Jboss(其他)–口碑网•Tomcat大纲•应用服务器架构•应用服务器性能调优应用服务器架构•应用服务器整体架构•JBoss架构体系•Tomcat架构体系•Jetty架构体系应用服务器整体架构•应用服务器目录结构•应用服务器启劢过程•Web容器整体架构应用服务器目录结构•启劢脚本目录(bin)–run.bat,run.sh,boo
2、tstrap.jar•配置文件目录(conf)–services.xml,env.xml,log4j.xml•库文件目录(lib)–*.jar•应用部署目录(webapps)–*.war,*.ear,dir,*.xml应用服务器启动过程Runbin目录Bootstrap.jarlib目录CreateclassloaderCreateServerconf目录LoadServicesCreateDeployerWebapps目录DeployWebApps应用服务器启动过程演示应用服务器启动过程演示应用服务器启动过程演示EARThreadXMLLogHttpD
3、eployerPoolWEBService应用服务器启动过程演示BootStrapServerDeployerService运行结果总结BootStrapServerStartServicesstartDeployAppsWeb容器整体架构Http协议Web应用目录结构Servlet规范WebModuleWebDeployer代码再看一次Web容器处理请求流程ClientHttp请求Http响应SocketAcceptReturnResourceServerHandlesocketServletfilterhandleParsetoHttpRequest
4、WebModuleHandleJBoss架构体系•JBoss目录结构•JBoss启劢过程•JBoss体系架构JBoss4.2.2目录结构JBoss4.2.2目录结构•Bin目录JBoss4.2.2目录结构•Lib目录JBoss4.2.2目录结构•Conf目录JBoss4.2.2目录结构JBoss4.2.2目录结构JBoss启动过程RunStartserverRegisterservicesDeploystartserviceJBoss架构JMX•JavaManagementExtensionstheJMXtechnologyprovidesthetool
5、sforbuildingdistributed,Web-based,modularanddynamicsolutionsformanagingandmonitoringdevices,applications,andservice-drivennetworks.Bydesign,thisstandardissuitableforadaptinglegacysystems,implementingnewmanagementandmonitoringsolutions,andpluggingintothoseofthefutureJMX优点•JMXtechn
6、ologyenablesJavaapplicationstobemanagedwithoutheavyinvestment•JMXtechnologyprovidesastandardwaytomanageJavatechnology-basedapplications,systems,andnetworks•JMXtechnologyprovidesascalable,dynamicmanagementarchitecture•JMXtechnologyleveragesexistingstandardJavatechnologiesJMXMBeans
7、•StandardMbeans•DynamicMbeans•OpenMbeans•ModelMbeansJMX常识•Name–javax.management.ObjectName–Domain:key=value–对于standardMbean接口与实现之间命名必须遵从:AAMBean(实现接口)JMXHelloWorld•接口•实现JMXHelloWorldJMXHelloWorldJMX总结•优点–管理监控Bean–适用于server端架构•缺点–缺少Bean生命周期管理–体系过于臃肿Jboss使用JMXJbossDeployer架构MainD
8、eployerSarDeployerJarDeployerOtherDeploy