溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Tomcat常見面試題有哪些

發(fā)布時間:2021-12-14 15:51:51 來源:億速云 閱讀:202 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關Tomcat常見面試題有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、Tomcat 的缺省端口是多少,怎么修改?

  1)找到 Tomcat 目錄下的 conf 文件夾

  2)進入 conf 文件夾里面找到 server.xml 文件

  3)打開 server.xml 文件

  4)在 server.xml 文件里面找到下列信息

  <1connector p=""

  redirectPort="8443" uriEncoding="utf-8"/>

  port="8080"改成你想要的端口

  二、tomcat 有哪幾種 Connector 運行模式(優(yōu)化)?

  bio:傳統(tǒng)的 Java I/O 操作,同步且阻塞 IO。maxThreads=”150”//Tomcat 使用線程來處理接收的每個請求。這個值表示

  Tomcat 可創(chuàng)建的最大的線程數。默認值 200??梢愿鶕C器的時期性能和內存大小調整,一般可以在 400-500。最大可以在 800 左右。

  minSpareThreads=”25”—Tomcat 初始化時創(chuàng)建的線程數。默認值 4。如果當前沒有空閑線程,且沒有超過 maxThreads,一次性創(chuàng)建的空閑線程數量。

  Tomcat 初始化時創(chuàng)建的線程數量也由此值設置。maxSpareThreads=”75”–一旦創(chuàng)建的線程超過這個值,Tomcat 就會關閉不再需要的 socket 線程。默認值 50。一旦創(chuàng)建的線程超過此數值,Tomcat 會關閉不再需要的線程。線程數可以大致上用 “同時在線人數每秒用戶操作次數系統(tǒng)平均操作時間” 來計算。

  acceptCount=”100”—-指定當所有可以使用的處理請求的線程數都被使用 時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值 10。如果當前可用線程數為 0,則將請求放入處理隊列中。這個值限定了請求隊列的大小,超過這個數值的請求將不予處理。connectionTimeout=”20000”–網絡連接超時,默認值 20000,單位:毫秒。設置為 0 表示永不超時,這樣設置有隱患的。通??稍O置為 30000 毫秒。

  nio:JDK1.4 開始支持,同步阻塞或同步非阻塞 IO。指定使用 NIO 模型來接受 HTTP 請求

  protocol=”org.apache.coyote.http11.Http11NioProtocol” 指定使用 NIO 模型來接受 HTTP 請求。默認是 BlockingIO,配置為 protocol=”HTTP/1.1” acceptorThreadCount=”2” 使用 NIO 模型時接收線程的數目

  aio(nio.2):JDK7 開始支持,異步非阻塞 IO。

  apr:Tomcat 將以 JNI 的形式調用 Apache HTTP 服務器的核心動態(tài)鏈接庫來處理文件讀取或網絡傳輸操作,從而大大地 提高 Tomcat 對靜態(tài)文件的處理性能。

  三、Tomcat 有幾種部署方式?

  1)直接把 Web 項目放在 webapps 下,Tomcat 會自動將其部署

  2)在 server.xml 文件上配置節(jié)點,設置相關的屬性即可

  3)通過 Catalina 來進行配置:進入到 conf\Catalina\localhost 文件下,創(chuàng)建一個xml 文件,該文件的名字就是站點的名字。

  編寫 XML 的方式來進行設置。

  四、tomcat 容器是如何創(chuàng)建 servlet 類實例?用到了什么原理?

  當容器啟動時,會讀取在 webapps 目錄下所有的 web 應用中的 web.xml 文件,然后對 xml 文件進行解析,并讀取 servlet 注冊信息。然后,將每個應用中注冊的 servlet 類都進行加載, 并通過反射的方式實例化。

  (有時候也是在第一次請求時實例化)在 servlet 注冊時加上如果為正數,則在一開始就實例化,如果不寫或為負數,則第一次請求實例化。

  五、tomcat 如何優(yōu)化?

  1、優(yōu)化連接配置.這里以 tomcat7 的參數配置為例,需要修改 conf/server.xml文件,修改連接數,關閉客戶端 dns 查詢。參數解釋:

  URIEncoding=”UTF-8″:使得 tomcat 可以解析含有中文名的文件的 url,真方便,不像 apache 里還有搞個 mod_encoding,還要手工編譯maxSpareThreads : 如果空閑狀態(tài)的線程數多于設置的數目,則將這些線程中止,減少這個池中的線程總數。

  minSpareThreads : 最小備用線程數,tomcat 啟動時的初始化的線程數。

  enableLookups :這個功效和 Apache 中的 HostnameLookups 一樣,設為關閉。

  connectionTimeout : connectionTimeout 為網絡連接超時時間毫秒數。

  maxThreads : maxThreads Tomcat 使用線程來處理接收的每個請求。這個值表示 Tomcat 可創(chuàng)建的最大的線程數,即最大并發(fā)數。

  acceptCount : acceptCount 是當線程數達到 maxThreads 后,后續(xù)請求會被放入一個等待隊列,這個 acceptCount 是這個隊列的大小,如果這個隊列也滿了,就直接 refuse connection maxProcessors 與 minProcessors :

  在 Java 中線程是程序運行時的路徑,是在一個程序中與其它控制線程無關的、能夠獨立運行的代碼段。它們共享相同的地址空間。多線程幫助程序員寫出 CPU 最大利用率的高效程序,使空閑時間保持最低,從而接受更多的請求。

  通常 Windows 是 1000 個左右,Linux 是 2000 個左右。

關于“Tomcat常見面試題有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI