前言
在工作中,作為 Java 開發的程序員,Tomcat 服務器是大家常用的,也是很多公司現在正在用的。但是,在系統並發量比較大的情況下,Tomcat 就會出現卡死和自動關閉等問題。如何優化 Tomcat,讓它更高效的運行就成了問題,在本次面試題分享中,我將為你解答如何更好的提升 Tomcat 性能。
小編分享的這份Java后端開發面試總結包含了JavaOOP、Java集合容器、Java異常、並發編程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL數據庫、消息中間件MQ、Dubbo、Linux、ZooKeeper、 分布式&數據結構與算法等26個專題技術點,都是小編在各個大廠總結出來的面試真題,已經有很多粉絲靠這份PDF拿下眾多大廠的offer,今天在這里總結分享給到大家!【已完結】
完整版Java面試題地址:2021最新面試題合集集錦。
1、Tomcat的缺省端口是多少,怎么修改?
1)找到Tomcat目錄下的conf文件夾
2)進入conf文件夾里面找到server.xml文件
3)打開server.xml文件
4)在server.xml文件里面找到下列信息
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443" uriEncoding="utf-8"/>
port="8080"改成你想要的端口
2、tomcat 有哪幾種Connector 運行模式(優化)?
3、Tomcat有幾種部署方式?
1)直接把Web項目放在webapps下,Tomcat會自動將其部署
2)在server.xml文件上配置
3)通過Catalina來進行配置:進入到conf\Catalina\localhost文件下,創建一個xml文件,該文件的名字就是站點的名字。
編寫XML的方式來進行設置。
4、tomcat容器是如何創建servlet類實例?用到了什么原理?
當容器啟動時,會讀取在webapps目錄下所有的web應用中的web.xml文件,然后對xml文件進行解析,並讀取servlet注冊信息。然后,將每個應用中注冊的servlet類都進行加載,並通過反射的方式實例化。(有時候也是在第一次請求時實例化)在servlet注冊時加上如果為正數,則在一開始就實例化,如果不寫或為負數,則第一次請求實例化。
5.tomcat 如何優化?
6.內存調優
7.垃圾回收策略調優
8.添加JMS遠程監控
9.專業點的分析工具有
IBM ISA,JProfiler、probe 等,具體監控及分析方式去網上搜索即可
10.關於Tomcat的session數目
這個可以直接從Tomcat的web管理界面去查看即可 ;
或者借助於第三方工具Lambda Probe來查看,它相對於Tomcat自帶的管理稍微多了點功能,但也不多 ;
11.監視Tomcat的內存使用情況
使用JDK自帶的jconsole可以比較明了的看到內存的使用情況,線程的狀態,當前加載的類的總量等;JDK自帶的jvisualvm可以下載插件(如GC等),可以查看更豐富的信息。如果是分析本地的Tomcat的話,還可以進行內存抽樣等,檢查每個類的使用情況
12.打印類的加載情況及對象的回收情況
13.Tomcat一個請求的完整過程
Ng:(nginx)
upstream yy_001{
server 10.99.99.99:8080;
server 10.99.99.100:8080;
hash $**;
healthcheck_enabled;
healthcheck_delay 3000;
healthcheck_timeout 1000;
healthcheck_failcount 2;
healthcheck_send 'GET /healthcheck.html HTTP/1.0' 'Host: wo.com'
'Connection: close';
}
server {
include base.conf;
server_name wo.de.tian;
...
location /yy/ {
proxy_pass http://yy_001;
}
14.Tomcat工作模式?
筆者回答:Tomcat是一個JSP/Servlet容器。其作為Servlet容器,有三種工作模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。進入Tomcat的請求可以根據Tomcat的工作模式分為如下兩類:Tomcat作為應用程序服務器:請求來自於前端的web服務器,這可能是Apache, IIS, Nginx等;Tomcat作為獨立服