動態

詳情 返回 返回

【建議收藏】Tomcat 優化總結 - 動態 詳情

Tomcat作為一個穩定、高性能且易於使用的Servlet容器,適用於各種類型的Java Web應用程序,並且在許多不同的應用場景中都得到了廣泛的應用和認可。例如企業級Web應用程序、電子商務平台、 教育和培訓項目等。後端開發人員通常需要針對 Tomcat 來做優化,V 哥今天整理了 Tomcat的優化策略給你參考,上乾貨!(備註:有想跳槽的兄弟文末聯繫)。

1.調整JVM參數

Tomcat作為Java應用程序運行在JVM上,通過調整JVM參數來優化內存、垃圾回收等方面的性能。這包括設置堆大小、垃圾回收算法、線程池參數等。

1.1 堆大小(Heap Size)

通過-Xms和-Xmx參數設置初始堆大小和最大堆大小。初始堆大小應根據應用程序的內存需求來設置,而最大堆大小應根據系統的物理內存和應用程序的性能需求來設置。

例如:

-Xms512m -Xmx1024m

這將指定初始堆大小為512MB,最大堆大小為1024MB。

1.2 垃圾回收算法

通過-XX:+UseG1GC-XX:+UseParallelGC等參數選擇垃圾回收算法。G1(Garbage First)垃圾回收器適用於大堆內存,而ParallelGC適用於多核CPU。

例如:

-XX:+UseG1GC

1.3 新生代和老年代比例

可以通過-XX:NewRatio參數調整新生代和老年代的比例。新生代的大小對應用程序的性能影響較大,可以根據具體情況進行調整。

例如:

-XX:NewRatio=2

1.4 並行GC線程數

通過-XX:ParallelGCThreads參數設置並行GC線程數,以提高垃圾回收的效率。

例如:

-XX:ParallelGCThreads=4

1.5 元空間大小(Metaspace Size)

通過-XX:MetaspaceSize-XX:MaxMetaspaceSize參數設置元空間的初始大小和最大大小。元空間用於存放類的元數據。

例如:

-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m

1.6 業務場景示例

假設有一個電子商務網站,該網站在Tomcat上運行,處理大量的用户請求。針對這樣的業務場景,我們可以進行如下JVM參數調優:

設置堆大小:考慮到網站可能會有較大的併發訪問量,我們可以設置較大的堆大小以應對高併發情況,例如:

-Xms2g -Xmx4g

這將指定初始堆大小為2GB,最大堆大小為4GB。

選擇合適的垃圾回收算法:由於高併發情況下需要快速的垃圾回收,我們可以選擇使用G1垃圾回收器來獲得更好的性能,例如:

-XX:+UseG1GC

調整新生代和老年代比例:可以適當增大新生代的大小,以減少頻繁的垃圾回收,例如:

-XX:NewRatio=3

設置並行GC線程數:可以根據服務器的CPU核心數來設置並行GC線程數,以充分利用服務器資源,例如:

-XX:ParallelGCThreads=8

通過這些優化,可以提高Tomcat在電子商務網站這樣的高併發場景下的性能和穩定性。

2.啓用壓縮

啓用壓縮是一種優化網絡傳輸性能的常見方法,可以減少數據傳輸量,加快頁面加載速度,提高用户體驗。在Tomcat中,可以通過配置來啓用HTTP壓縮。以下是詳細介紹以及一個業務場景示例:

2.1 配置Tomcat的壓縮參數

在Tomcat的配置文件(通常是server.xml)中,可以配置壓縮參數。主要涉及的配置項有:

  • compression:啓用或禁用壓縮,默認為off。
  • compressionMinSize:指定啓用壓縮的最小響應大小。小於此大小的響應將不會被壓縮。
  • compressableMimeType:指定需要進行壓縮的MIME類型。
  • noCompressionUserAgents:指定不進行壓縮的用户代理(User-Agent)。
  • compressableMimeTypes:指定需要壓縮的MIME類型。

例如,在server.xml中配置壓縮參數如下:

<Connector port="8080" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/plain,application/json" />

2.2 壓縮算法選擇

Tomcat支持多種壓縮算法,包括gzip和deflate。可以通過配置來選擇所需的壓縮算法。

2.3 壓縮的MIME類型

根據實際需要配置需要進行壓縮的MIME類型,通常包括文本類型和應用程序類型。

2.4 業務場景示例

假設有一個電子商務網站,該網站使用Tomcat作為服務器,並提供了大量的商品信息頁面。考慮到這些頁面可能包含大量的文本內容,啓用壓縮可以減少頁面的傳輸量,加快頁面加載速度,提高用户體驗。

在這個場景下,可以在Tomcat的配置文件中啓用壓縮,並配置壓縮參數,例如:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               compression="on"
               compressionMinSize="2048"
               compressableMimeType="text/html,text/xml,text/plain,application/json" />

這樣,當用户訪問商品信息頁面時,服務器會自動對頁面內容進行壓縮,並將壓縮後的內容發送給用户。這可以顯著減少頁面加載時間,提高用户滿意度,並降低網絡帶寬的使用成本。

3.啓用NIO或NIO2連接器

Tomcat 10提供了多種連接器,其中NIO(Non-blocking I/O)和NIO2連接器可以提供更高的性能和吞吐量,尤其適用於高併發的場景。

3.1 NIO連接器

Tomcat 8及以上版本支持NIO連接器,它基於Java NIO技術實現。NIO連接器使用非阻塞I/O模型,通過少量的線程處理大量的併發連接,提高了服務器的吞吐量和性能。

3.2 NIO2連接器

Tomcat 8.5及以上版本引入了NIO2連接器,它進一步改進了NIO連接器的性能。NIO2連接器在NIO的基礎上增加了對Asynchronous I/O(AIO)的支持,提供了更高級別的異步I/O操作,進一步提高了性能。

3.3 配置NIO或NIO2連接器

在Tomcat的配置文件(通常是server.xml)中,可以配置NIO或NIO2連接器。需要確保Tomcat版本支持所需的連接器。主要涉及的配置項有:

  • protocol:指定使用的協議,可以設置為org.apache.coyote.http11.Http11NioProtocol(對應NIO連接器)或org.apache.coyote.http11.Http11Nio2Protocol(對應NIO2連接器)。
  • maxThreads:指定最大線程數,用於處理連接。
  • acceptCount:指定等待隊列的大小,當所有線程都被佔用時,新的連接會被放入等待隊列。

3.4 業務場景示例

假設有一個在線即時通訊應用程序,該應用程序使用Tomcat作為後端服務器,並且需要處理大量的併發連接。在這種高併發的網絡應用場景下,啓用NIO或NIO2連接器可以提高服務器的性能和吞吐量。

例如,在Tomcat的配置文件中配置NIO2連接器如下:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
           connectionTimeout="20000"
           redirectPort="8443"
           maxThreads="200"
           acceptCount="100" />

這樣,Tomcat將使用NIO2連接器來處理HTTP請求,並通過少量的線程來處理大量的併發連接。這可以有效地減少線程的競爭和上下文切換,提高服務器的性能和響應速度。對於在線即時通訊應用程序這樣需要處理大量併發連接的場景來説,啓用NIO或NIO2連接器是一種有效的優化方法。

4.調整線程池配置

調整Tomcat的線程池配置是優化性能和提高服務器吞吐量的重要步驟之一。Tomcat使用線程池來處理客户端請求,合理配置線程池參數可以更好地利用服務器資源,避免線程過多或過少導致的性能問題。以下是詳細介紹以及一個業務場景示例:

4.1 連接器線程池配置

Tomcat使用連接器(Connector)來接受客户端請求,並使用線程池來處理這些請求。主要的線程池配置項包括:

  • maxThreads:指定線程池中線程的最大數量,即同時能處理的最大請求數。
  • minSpareThreads:指定線程池中保持的最小空閒線程數,用於快速響應新的請求。
  • acceptCount:指定接受連接的等待隊列的大小,當所有線程都被佔用時,新的連接會被放入等待隊列。

4.2 後台處理線程池配置

除了連接器線程池外,Tomcat還使用一個後台處理線程池來執行一些後台任務,如異步Servlet請求的處理等。主要的線程池配置項包括:

  • maxSpareThreads:指定後台處理線程池中保持的最大空閒線程數。
  • maxQueueSize:指定後台處理線程池中任務隊列的最大大小,當任務隊列滿時,新的任務將被拒絕。

4.3 業務場景示例

假設有一個在線教育平台,該平台使用Tomcat作為後端服務器,需要處理大量的併發請求。在這種場景下,合理配置Tomcat的線程池參數非常重要,以保證服務器能夠高效地處理來自用户的請求。

例如,在Tomcat的配置文件中配置連接器線程池參數如下:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           maxThreads="200"
           minSpareThreads="20"
           acceptCount="100" />

這樣,Tomcat將使用一個最大線程數為200的線程池來處理HTTP請求。當請求到達時,Tomcat會從線程池中獲取一個線程來處理該請求。如果所有線程都被佔用,新的連接將會被放入大小為100的等待隊列中。同時,Tomcat還會保持至少20個空閒線程,以確保能夠快速響應新的請求。

對於在線教育平台這樣需要處理大量併發請求的場景來説,合理調整線程池配置可以提高服務器的吞吐量和性能,確保用户能夠快速訪問和使用平台的各項功能。

5.啓用緩存

在Tomcat中啓用緩存可以提高靜態資源的訪問速度,減少對磁盤的訪問次數,從而提升整體性能。常見的緩存技術包括內存緩存和HTTP緩存。

5.1 內存緩存

Tomcat提供了內置的內存緩存功能,可以通過配置啓用。內存緩存將靜態資源(如HTML、CSS、JavaScript文件等)緩存在服務器的內存中,以加快對這些資源的訪問速度。

5.2 HTTP緩存

Tomcat還支持HTTP緩存,可以通過配置HTTP響應頭來控制客户端緩存靜態資源。合理配置HTTP緩存策略可以減少客户端與服務器之間的通信次數,從而減輕服務器負載並提高性能。

下面是啓用緩存的詳細介紹和一個業務場景示例:

內存緩存配置
在Tomcat的配置文件(通常是web.xml)中,可以配置內存緩存,主要涉及的配置項包括:

  • <Resources>:配置一個<Resources>元素來定義內存緩存的屬性,如緩存大小、過期時間等。
  • <Cache>:在<Resources>元素下配置<Cache>元素來指定哪些靜態資源需要緩存。

例如,在web.xml中配置內存緩存如下:

<Resources cachingAllowed="true" cacheMaxSize="100000" />
<Cache maxEntries="1000" maxAge="3600" />

HTTP緩存配置:通過設置HTTP響應頭來控制客户端緩存靜態資源。可以使用Cache-Control、Expires、Last-Modified等響應頭來指定緩存策略。

例如,在Servlet中設置Cache-Control和Expires響應頭:

response.setHeader("Cache-Control", "max-age=3600");
response.setDateHeader("Expires", System.currentTimeMillis() + 3600 * 1000);

5.3 業務場景示例

假設有一個電子商務網站,該網站的首頁包含大量的靜態資源,如圖片、CSS文件和JavaScript文件等。為了加快首頁的加載速度,可以啓用Tomcat的緩存功能。

首先,在web.xml中配置內存緩存,以將靜態資源緩存到服務器的內存中,例如:

<Resources cachingAllowed="true" cacheMaxSize="100000" />
<Cache maxEntries="1000" maxAge="3600" />

這樣,Tomcat會將靜態資源緩存在內存中,並在需要訪問這些資源時快速地提供。

其次,在Servlet或Filter中設置HTTP緩存頭,以控制客户端對這些靜態資源的緩存,例如:

response.setHeader("Cache-Control", "max-age=3600");
response.setDateHeader("Expires", System.currentTimeMillis() + 3600 * 1000);

這樣,客户端在第一次請求靜態資源時會緩存這些資源,並在過期時間內不再向服務器請求,從而減少對服務器的訪問次數,提高網站的性能和用户體驗。

通過啓用緩存,可以顯著提升電子商務網站首頁的加載速度,降低服務器的負載,提高用户體驗。

6.優化數據庫連接池

優化數據庫連接池是提高Tomcat性能和數據庫訪問效率的重要步驟之一。數據庫連接池可以幫助管理數據庫連接的創建和銷燬,避免頻繁地打開和關閉連接,從而提高系統的性能和穩定性。以下是詳細介紹以及一個業務場景示例:

6.1 選擇合適的數據庫連接池

Tomcat支持多種數據庫連接池,如Apache Commons DBCP、Tomcat JDBC Pool、HikariCP等。根據需求和實際情況選擇合適的數據庫連接池。

6.2 配置連接池參數

在Tomcat的數據源配置中,可以配置數據庫連接池的各種參數,包括連接數、最大等待時間、最大空閒連接數等。合理配置這些參數可以提高數據庫連接的利用率和性能。

6.3 監控連接池性能

通過Tomcat的管理界面或第三方監控工具監控連接池的性能指標,如活動連接數、空閒連接數、平均等待時間等,及時發現並解決連接池性能問題。

6.4 業務場景示例

假設有一個在線圖書商城,該商城使用Tomcat作為服務器,通過JDBC連接池連接到MySQL數據庫。由於商城的用户量較大,數據庫訪問頻繁,因此需要優化數據庫連接池以提高性能。

在這個場景下,可以選擇HikariCP作為數據庫連接池,並通過配置合適的參數來優化性能。例如,在Tomcat的數據源配置文件中配置HikariCP連接池參數如下:

<Resource name="jdbc/myDB" auth="Container" type="javax.sql.DataSource"
           factory="com.zaxxer.hikari.HikariJNDIFactory"
           driverClassName="com.mysql.jdbc.Driver"
           jdbcUrl="jdbc:mysql://localhost:3306/myDB"
           username="username" password="password"
           maximumPoolSize="50"
           minimumIdle="5"
           connectionTimeout="30000"
           idleTimeout="600000"
           dataSourceJNDI="java:comp/env/jdbc/myDB" />

在這個示例中,通過配置maximumPoolSize參數為50,指定了連接池的最大連接數為50個;配置minimumIdle參數為5,指定了連接池的最小空閒連接數為5個;配置connectionTimeout參數為30000毫秒,指定了連接的超時時間為30秒;配置idleTimeout參數為600000毫秒,指定了連接的空閒超時時間為10分鐘。

通過這樣的配置,可以確保數據庫連接池在高併發訪問時能夠充分利用數據庫資源,提高系統的性能和穩定性,從而更好地滿足在線圖書商城的需求。

7.使用HTTP/2和SSL加速

使用HTTP/2和SSL加速是提高Tomcat性能和安全性的重要方法之一。HTTP/2是HTTP協議的下一代版本,支持多路複用、頭部壓縮等功能,可以減少頁面加載時間,提高性能。SSL加速則通過加密數據傳輸,保護用户數據安全,並且可以提供更快的數據傳輸速度。以下是詳細介紹以及一個業務場景示例:

7.1 啓用HTTP/2協議

Tomcat 8.5及以上版本支持HTTP/2協議,可以通過配置啓用。HTTP/2協議可以顯著提高網站的性能,特別是在高延遲和高帶寬網絡環境下。

7.2 配置SSL加速

SSL加速通過使用SSL/TLS協議對數據進行加密,保護數據安全,並且可以提供更快的數據傳輸速度。可以通過在Tomcat配置文件中配置SSL證書來啓用SSL加速。

7.3 業務場景示例

假設有一個在線支付系統,該系統使用Tomcat作為後端服務器,並且需要保護用户的支付數據安全,並提供快速的數據傳輸速度。

在這個場景下,可以同時啓用HTTP/2協議和SSL加速來提高系統的性能和安全性。首先,在Tomcat的配置文件中配置SSL證書,以啓用SSL加速,例如:

<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                     certificateFile="conf/localhost-rsa-cert.pem"
                     certificateChainFile="conf/localhost-rsa-chain.pem"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

在這個示例中,配置了Tomcat的連接器使用HTTP/2協議,並啓用了SSL加速,其中certificateKeyFile、certificateFile和certificateChainFile分別指定了SSL證書的私鑰文件、證書文件和證書鏈文件。

然後,客户端和服務器之間的數據傳輸將通過SSL加密,保護用户的支付數據安全。同時,使用HTTP/2協議可以減少頁面加載時間,提高網站性能。

通過這樣的配置,可以提高在線支付系統的安全性和性能,保護用户的支付數據安全,並提供更快的數據傳輸速度,提高用户體驗。

8.精簡部署包

精簡部署包是指在部署應用程序時儘量減少不必要的文件和依賴,以減小部署包的大小,提高部署效率和節省服務器資源。在Tomcat中,精簡部署包可以通過以下幾種方式實現:

8.1 移除不必要的依賴

在部署應用程序時,只包含必要的依賴庫,移除不需要的第三方庫和jar包。這樣可以減小部署包的大小,減少服務器資源佔用。

8.2 刪除不必要的文件和資源

移除不需要的配置文件、靜態資源、模板文件等,只保留應用程序運行所必需的文件。例如,可以刪除開發環境下的測試文件、文檔文件等。

8.3 優化資源文件

對於靜態資源文件(如圖片、CSS、JavaScript等),可以進行壓縮、合併和混淆等優化處理,以減小文件大小並提高加載速度。

8.4 使用輕量級框架

選擇輕量級的Java框架或庫來構建應用程序,避免使用過多的依賴和複雜的功能,從而減小部署包的大小。

8.5 業務場景示例

假設有一個微服務應用程序,該應用程序使用Tomcat作為每個微服務的容器。由於微服務數量較多,如果每個微服務都包含完整的依賴和資源文件,部署包會變得非常龐大,增加了部署的複雜性和服務器資源的佔用。

在這個場景下,可以通過精簡部署包來優化部署流程和節省服務器資源。具體步驟如下:

  • 移除不必要的依賴:在每個微服務的部署包中,只包含該微服務運行所必需的依賴庫,移除其他不需要的第三方庫。例如,如果某個微服務只需要使用Servlet API,則只需包含相關的Servlet API依賴庫,而不需要包含其他無關的庫。
  • 刪除不必要的文件和資源:移除每個微服務中不需要的配置文件、測試文件、文檔文件等。只保留應用程序運行所必需的文件和資源。
  • 優化資源文件:對於每個微服務的靜態資源文件,進行壓縮、合併和混淆等優化處理,以減小文件大小並提高加載速度。例如,將多個CSS文件合併成一個文件,將多個JavaScript文件合併成一個文件,並對文件進行壓縮處理。

通過以上優化措施,可以顯著減小每個微服務的部署包大小,提高部署效率,並節省服務器資源。這樣可以更輕鬆地部署和管理大量的微服務,並提高整體系統的性能和穩定性。

9.監控和調優

使用Tomcat提供的管理界面或第三方監控工具來監控Tomcat的運行狀態,及時發現並解決性能瓶頸。

監控和調優是確保Tomcat服務器穩定性和性能的關鍵步驟之一。通過監控服務器的運行狀態和性能指標,並根據監控結果進行調優,可以及時發現並解決潛在的性能問題,提高服務器的性能和可靠性。以下是詳細介紹以及一個業務場景示例:

9.1 監控指標

瞭解Tomcat服務器的運行狀態和性能指標是進行調優的基礎。常見的監控指標包括:

  • CPU使用率:監控CPU的使用情況,及時發現CPU瓶頸。
  • 內存使用率:監控內存的使用情況,避免內存泄漏和內存溢出。
  • 線程池狀態:監控連接池和後台處理線程池的狀態,避免線程池滿載。
  • 請求處理時間:監控請求處理的時間,及時發現響應時間過長的問題。
  • 數據庫連接池狀態:監控數據庫連接池的使用情況,避免數據庫連接泄漏和連接池耗盡。

9.2 監控工具

選擇合適的監控工具對Tomcat服務器進行監控,常見的監控工具包括:

  • Tomcat Manager:Tomcat自帶的管理界面,提供了對服務器狀態和運行情況的監控和管理功能。
  • JConsole:Java自帶的監控工具,可以監控Java虛擬機的運行狀態和性能指標。
  • JVisualVM:Java自帶的性能分析工具,可以監控Java應用程序的運行狀態和性能指標,並進行分析和優化。
  • 第三方監控工具:如Prometheus、Grafana等,提供了更豐富的監控和分析功能。

9.3 調優策略

根據監控結果進行調優,常見的調優策略包括:

  • 調整線程池參數:根據請求量和服務器負載情況,調整連接池和後台處理線程池的參數,確保能夠充分利用服務器資源。
  • 優化數據庫訪問:通過索引優化、SQL優化等方式提高數據庫訪問性能。
  • 垃圾回收調優:根據內存使用情況和GC日誌,調整垃圾回收器的參數,提高垃圾回收的效率。
  • 代碼優化:通過代碼優化和性能調優,減少不必要的資源消耗,提高系統的性能和響應速度。

9.4 業務場景示例

假設有一個在線視頻網站,該網站使用Tomcat作為後端服務器,並且需要處理大量的併發請求。由於視頻網站的用户量較大,服務器的負載較高,因此需要對Tomcat服務器進行監控和調優,以確保服務器的穩定性和性能。

在這個場景下,可以使用Tomcat Manager或第三方監控工具對Tomcat服務器進行監控,監控服務器的CPU使用率、內存使用率、線程池狀態等指標。根據監控結果,可以調整線程池參數、優化數據庫訪問、調優垃圾回收等策略,以提高服務器的性能和穩定性。

通過監控和調優,可以及時發現並解決服務器的性能問題,提高在線視頻網站的用户體驗,確保用户能夠流暢地觀看視頻,並提高網站的用户滿意度。

10.使用緩存技術

使用諸如Redis、Memcached等緩存技術來緩存數據,減少對數據庫的訪問,提高性能。

使用緩存技術是提高Tomcat性能的有效方法之一。通過緩存技術,可以將經常訪問的數據存儲在內存中,加快數據的訪問速度,降低對數據庫等後端資源的訪問壓力,從而提高系統的性能和響應速度。以下是詳細介紹以及一個業務場景示例:

10.1 緩存類型

常見的緩存類型包括內存緩存、分佈式緩存和客户端緩存等。在Tomcat中,可以使用各種緩存技術來提高系統的性能。

10.2 緩存策略

在使用緩存技術時,需要考慮緩存的更新策略、過期策略和淘汰策略等。合理的緩存策略可以確保緩存數據的有效性和一致性。

10.3 業務場景示例

假設有一個電子商務網站,該網站使用Tomcat作為後端服務器,並且需要頻繁地訪問商品信息和用户信息。由於商品信息和用户信息經常被訪問,可以使用緩存技術來加速數據的訪問速度。

在這個場景下,可以使用內存緩存來緩存商品信息和用户信息。當用户訪問商品詳情頁面時,首先從緩存中查找商品信息,如果緩存中存在,則直接返回緩存數據;如果緩存中不存在,則從數據庫中讀取商品信息,並將其緩存到內存中,以加速下次訪問。類似地,當用户登錄時,首先從緩存中查找用户信息,如果緩存中存在,則直接返回緩存數據;如果緩存中不存在,則從數據庫中讀取用户信息,並將其緩存到內存中。

例如,使用Ehcache作為內存緩存,可以在Tomcat的配置文件中配置Ehcache,如下所示:

<ehcache>
    <cache name="productCache"
           maxEntriesLocalHeap="1000"
           eternal="false"
           timeToLiveSeconds="3600"
           timeToIdleSeconds="1800" />
    <cache name="userCache"
           maxEntriesLocalHeap="1000"
           eternal="false"
           timeToLiveSeconds="3600"
           timeToIdleSeconds="1800" />
</ehcache>

在這個示例中,配置了兩個緩存區域,分別用於緩存商品信息和用户信息,設置了緩存的最大條目數、存活時間和空閒時間等參數。

通過使用緩存技術,可以顯著提高電子商務網站的性能和響應速度,減少對數據庫等後端資源的訪問壓力,提高系統的併發能力和穩定性。

當然,通常我們還會使用Redis來實現緩存策略,這裏就不再贅述了,有機會 V 哥再專門寫一篇關於Redis的緩存策略相關的文章。

最後

以上是V 哥整理的 Tomcat 優化的一些點,希望對你有所幫助,目前Tomcat已更新到11版本,你在項目中是使用哪個版本呢,如果有一些獨到的優化策略,歡迎留言告訴我,感謝。

user avatar zyx178 頭像 79px 頭像 yishenjiroudekaixinguo 頭像 neronero 頭像 jiuliangxiaodeshuanggang 頭像 jizaodebangbangtang 頭像
點贊 6 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.