技術乾貨:Tomcat面試題彙總及答案
今天陝西優就業小編繼續給大家分享IT乾貨。希望能為大家提供幫助!
一、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 執行模式(最佳化)?
bio:傳統的 Java I/O 操作,同步且阻塞 IO。maxThreads=”150”//Tomcat 使用執行緒來處理接收的每個請求。這個值表示
Tomcat 可建立的最大的執行緒數。預設值 200。可以根據機器的時期效能和記憶體大小調整,一般可以在 400-500。最大可以在 800 左右。
minSpareThreads=”25”—Tomcat 初始化時建立的執行緒數。預設值 4。如果當前沒有空閒執行緒,且沒有超過 maxThreads,一次性建立的空閒執行緒數量。
Tomcat 初始化時建立的執行緒數量也由此值設定。maxSpareThreads=”75”–一旦建立的執行緒超過這個值,Tomcat 就會關閉不再需要的 socket 執行緒。預設值 50。一旦建立的執行緒超過此數值,Tomcat 會關閉不再需要的執行緒。執行緒數可以大致上用 “同時線上人數每秒使用者操作次數系統平均操作時間” 來計算。
acceptCount=”100”—-指定當所有可以使用的處理請求的執行緒數都被使用 時,可以放到處理佇列中的請求數,超過這個數的請求將不予處理。預設值 10。如果當前可用執行緒數為 0,則將請求放入處理佇列中。這個值限定了請求佇列的大小,超過這個數值的請求將不予處理。connectionTimeout=”20000”–網路連線超時,預設值 20000,單位:毫秒。設定為 0 表示永不超時,這樣設定有隱患的。通常可設定為 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 伺服器的核心動態連結庫來處理檔案讀取或網路傳輸操作,從而大大地 提高 Tomcat 對靜態檔案的處理效能。
三、Tomcat 有幾種部署方式?
1)直接把 Web 專案放在 webapps 下,Tomcat 會自動將其部署
2)在 server.xml 檔案上配置節點,設定相關的屬性即可
3)透過 Catalina 來進行配置:進入到 conf\Catalina\localhost 檔案下,建立一個xml 檔案,該檔案的名字就是站點的名字。
編寫 XML 的方式來進行設定。
四、tomcat 容器是如何建立 servlet 類例項?用到了什麼原理?
當容器啟動時,會讀取在 webapps 目錄下所有的 web 應用中的 web.xml 檔案,然後對 xml 檔案進行解析,並讀取 servlet 註冊資訊。然後,將每個應用中註冊的 servlet 類都進行載入, 並透過反射的方式例項化。
(有時候也是在第一次請求時例項化)在 servlet 註冊時加上如果為正數,則在一開始就例項化,如果不寫或為負數,則第一次請求例項化。
五、tomcat 如何最佳化?
1、最佳化連線配置.這裡以 tomcat7 的引數配置為例,需要修改 conf/server.xml檔案,修改連線數,關閉客戶端 dns 查詢。引數解釋:
URIEncoding=”UTF-8″:使得 tomcat 可以解析含有中文名的檔案的 url,真方便,不像 apache 裡還有搞個 mod_encoding,還要手工編譯maxSpareThreads : 如果空閒狀態的執行緒數多於設定的數目,則將這些執行緒中止,減少這個池中的執行緒總數。
minSpareThreads : 最小備用執行緒數,tomcat 啟動時的初始化的執行緒數。
enableLookups :這個功效和 Apache 中的 HostnameLookups 一樣,設為關閉。
connectionTimeout : connectionTimeout 為網路連線超時時間毫秒數。
maxThreads : maxThreads Tomcat 使用執行緒來處理接收的每個請求。這個值表示 Tomcat 可建立的最大的執行緒數,即最大併發數。
acceptCount : acceptCount 是當執行緒數達到 maxThreads 後,後續請求會被放入一個等待佇列,這個 acceptCount 是這個佇列的大小,如果這個佇列也滿了,就直接 refuse connection maxProcessors 與 minProcessors :
在 Java 中執行緒是程式執行時的路徑,是在一個程式中與其它控制執行緒無關的、能夠獨立執行的程式碼段。它們共享相同的地址空間。多執行緒幫助程式設計師寫出 CPU 最大利用率的高效程式,使空閒時間保持最低,從而接受更多的請求。
通常 Windows 是 1000 個左右,Linux 是 2000 個左右。
推薦閱讀
http://blog.itpub.net/69902581/viewspace-2668444/程式設計師35歲不焦慮,該怎麼做?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2672020/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 技術乾貨:Kotlin面試題彙總及答案Kotlin面試題
- 技術乾貨:Kubernetes面試題彙總及答案面試題
- 技術乾貨:spring cloud面試題彙總及答案SpringCloud面試題
- 技術乾貨:RabbitMQ面試題及答案MQ面試題
- 技術乾貨:ActiveMQ面試題及答案MQ面試題
- 技術乾貨:Hadoop面試題及答案Hadoop面試題
- 技術乾貨:spring boot面試題及答案Spring Boot面試題
- 技術乾貨:關於效能測試面試題及答案面試題
- Java開發基礎常見面試題及答案彙總(實用乾貨!)Java面試題
- 技術乾貨:ASP.net mvc面試32題附答案ASP.NETMVC面試
- Java常見面試題及答案彙總Java面試題
- ASP net core面試題彙總及答案面試題
- 12個iOS技術面試題及答案總結iOS面試題
- 經典Java面試題彙總及答案解析Java面試題
- 面試寶典:15道MyBatis 常見面試題彙總及答案MyBatis面試題
- 【半月刊】前端高頻面試題及答案彙總前端面試題
- 最新PHP面試題彙總(附答案)PHP面試題
- 21年最新Python面試題及答案彙總詳解(上)Python面試題
- 【半月刊 3】前端高頻面試題及答案彙總前端面試題
- 【半月刊 4】前端高頻面試題及答案彙總前端面試題
- 【半月刊 2】前端高頻面試題及答案彙總前端面試題
- JavaScript常見面試題彙總(含答案)JavaScript面試題
- 2017前端面試題及答案總結|掘金技術徵文前端面試題
- 乾貨來臨:C語言面試54題附答案C語言面試
- 24個Jvm面試題總結及答案JVM面試題
- Android 面試題(附答案) | 掘金技術徵文Android面試題
- 【總結】Python爬蟲面試題及答案(二)Python爬蟲面試題
- 技術面試題分享:含答案的10道Jvm面試專題面試題JVM
- ES6面試、複習乾貨知識點彙總(全)面試
- 2022年最新資料庫經典面試題及答案彙總(含PostgreSQL、Oracle、MySQL)資料庫面試題OracleMySql
- LLM面試題彙總面試題
- Paycom 面試題彙總面試題
- Spring面試題彙總Spring面試題
- mysql 面試題彙總MySql面試題
- iOS 面試題彙總iOS面試題
- 各大網際網路公司面試流程及面試題彙總面試題
- 面試題:web程式設計技術考試題庫(含答案)面試題Web程式設計
- 【面試】社招中級前端筆試面試題總結-答案及擴充前端筆試面試題