什麼是嵌入式Tomcat? -來自WhatIs.com的定義
嵌入式Tomcat伺服器由單個Java Web應用程式和完整的Tomcat伺服器發行版組成,打包在一起並壓縮成單個JAR,WAR或ZIP檔案。
嵌入式Tomcat提供了一種打包Java Web應用程式的方法,該方法與基於微服務的軟體開發方法一致。它還使通過Docker容器分發Java Web應用程式和通過容器編排服務(例如Kubernetes或OpenShift)管理它們變得更加容易。
嵌入式Tomcat與獨立例項
在傳統設定中,企業將使用單個獨立的Tomcat伺服器,並將所有Java Web應用程式部署到該例項。然後,該一臺應用伺服器將在水平和垂直方向上進行叢集和擴充套件,以管理吞吐量和容量。使用這種傳統配置,Tomcat伺服器與部署到該伺服器的應用程式之間的基數始終是一對多。
對於嵌入式Tomcat伺服器,伺服器與應用程式之間的比率為1比1。單個Java Web應用程式已部署到單個Tomcat伺服器。與Tomcat伺服器和已部署的應用程式相關聯的所有檔案都被壓縮為單個存檔檔案,通常以.zip,.jar或.war副檔名。
術語嵌入式Tomcat的基礎是指應用程式和整個Tomcat伺服器打包在一個易於管理和壓縮的單個存檔檔案中。
嵌入式Tomcat如何工作?
嵌入式Tomcat伺服器的另一個關鍵元素是可執行檔案。只要計算機上已安裝JRE並配置了JAVA_HOME,在將JAR檔案的名稱提供給java -jar實用程式時,就可以從命令列執行嵌入式Tomcat伺服器。這是執行打包在名為embeded-tomcat-example.jar檔案的嵌入式Tomcat應用程式所需的命令:
java -jar embedded-tomcat-example.jar |
命令完成後,Tomcat伺服器將啟動,並且可以通過HTTP請求(例如網頁,基於SOAP的Web服務或RESTful API呼叫)訪問部署在其中的Java Web應用程式。預設的嵌入式Tomcat埠是8080。
嵌入式Tomcat和Maven
建立嵌入式Tomcat檔案的最常見方法之一是使用Maven -Tomcat外掛進行構建。
通過這種方法,開發人員可以建立基於Maven的Java Web專案,而無需考慮應用程式的打包方式。然後,在Maven構建期間,將引用Tomcat外掛的exec-war-only開關。這是一個如何使用Maven-Tomcat外掛建立可執行的嵌入式Tomcat JAR檔案的示例。
/c/ embedded Tomcat example/maven-build $ mvn clean install tomcat7:exec-war-only <p>[INFO] --- embedded tomcat maven plugin running <p>[INFO] ------------------------------------------- <p>[INFO] MAVEN BUILD SUCCESS : EMBEDDED TOMCAT JAR CREATED <p>[INFO] ------------------------------------------- <p>[INFO] Elapsed time: 2.211 s <p>[INFO] ------------------------------------------- |
嵌入式Tomcat和Spring Boot
Spring Boot是一個流行的基於Java的框架,用於開發微服務。預設情況下,用於構建Spring Boot應用程式的Spring Tool Suite(STS)IDE會在每次構建或部署時自動使用開發的微服務來建立嵌入式Tomcat伺服器。STS內建了其他功能,以促進基於微服務的開發,包括設定斷點以及隨後在嵌入式Tomcat伺服器上執行程式碼時逐步執行程式碼的功能。
嵌入式Tomcat替代品
Tomcat與其他Java應用程式伺服器(包括WebSphere,Jetty,Wildfly,Payara和JBoss)競爭。這些伺服器中的每一個都提供了用於建立單個JAR或WAR檔案的功能,在該檔案中嵌入了伺服器和應用程式。
從WebSphere Portal例項轉向微服務體系結構的IBM客戶端可以遵循帶有嵌入式WebSphere Liberty例項的通用遷移路徑。Jetty是Jenkins CI的獨立發行版中使用的嵌入式伺服器。Wildfly是高度模組化的,可以去除所有不需要的服務。當您希望伺服器佔用的空間最小時,它通常是嵌入式Tomcat例項的流行替代方法。
嵌入式Tomcat與單獨執行的效能
由於每個嵌入式Tomcat例項都執行自己的完整Tomcat伺服器例項,因此與獨立版本相比,前期效能成本較高。
例如,如果組織執行了10個嵌入式Tomcat例項,則將啟動10個單獨的Tomcat伺服器例項。但是,獨立例項僅將10個應用程式部署到一個例項。在這種情況下,獨立效能將更快,因為僅需啟動一個Java程式即可。所有傳入的請求都可以由高效執行緒處理。
使用嵌入式Tomcat,每個伺服器都需要自己的Java程式,並且其他執行緒可以處理傳入的請求。Java程式比單個執行執行緒需要更多的處理能力。因此,與承載多個應用程式的獨立伺服器相比,嵌入式Tomcat伺服器需要更多資源才能執行。
嵌入式Tomcat的好處
前面提到的將嵌入式Tomcat效能與獨立例項進行比較的場景,錯過了開發人員將應用程式部署到嵌入式Tomcat例項的原因。使用嵌入式Tomcat例項,可以使單個應用程式離線或重新啟動,而不會影響其他應用程式。使用獨立架構是不可能的。
此外,如果單個應用程式需要更多資源,則可以對其進行工作負載管理。在傳統的實現方式中,必須對單個Tomcat伺服器進行工作負載管理,這意味著即使僅部署的一個應用程式承受了較高的負載,每個託管應用程式都需要進行擴充套件。
嵌入式Tomcat和容器
在可執行的嵌入式Tomcat例項中交付Java Web應用程式的主要思想是能夠將該檔案移動到Docker容器中,並將該容器部署到容器託管的環境(如Kubernetes或OpenShift)中。此功能開啟了各種低成本的基於雲的伸縮選項,這些選項對於獨立的Tomcat例項不可用。
因此,使用嵌入式Tomcat伺服器是允許傳統開發的Java Web應用程式利用現代企業架構的關鍵。
相關文章
- 什麼是抽象類?怎麼定義?抽象
- MySQL 中的 DEFINER(定義者)是什麼MySql
- 區塊鏈的概念定義是什麼區塊鏈
- 雲端計算的定義是什麼?
- 什麼是庫存?什麼是零庫存?庫存的定義
- DMAIC定義階段的重點是什麼?AI
- python函式的定義和呼叫是什麼?Python函式
- 什麼是計算機編碼的定義?計算機
- WIFI網路覆蓋的定義是什麼WiFi
- 設計模式的數學定義是什麼?設計模式
- BIM技術的起源與定義是什麼
- 什麼是Tomcat? 如何在IDEA中配置Tomcat?TomcatIdea
- 物件導向中類和物件的定義是什麼?物件
- 什麼是協議?| 網路協議定義協議
- 資料中臺定義是什麼,作用有哪些?
- 什麼是Python函式?如何定義函式?Python函式
- Declaration vs. Definition of a variable in C(在c中,什麼是宣告什麼是定義)
- XCMP 的意義是什麼?
- 請問模型管理中的模型的列表定義是什麼意思模型
- 什麼是介面?如何定義介面?如何實現介面?
- 什麼是eval()?eval是用來幹什麼的?
- Web含義是什麼Web
- 什麼是資本主義
- 在Linux中,tomcat和nginx的區別是什麼?LinuxTomcatNginx
- 創業板是什麼意思?創業板的含義是什麼?創業
- 嵌入式系統開發的基本流程是什麼
- 安全設計的含義是什麼?
- Objects.requireNonNull的意義是什麼ObjectUINull
- 架構師的定義是什麼?架構師需要具備哪些能力?架構
- 什麼是Tomcat?用最簡單的語言描述它Tomcat
- react中什麼使用定義變數,需要使用useRef,什麼時候直接定義即可?React變數
- DFMEA是用來幹什麼的?
- Java是用來幹什麼的?Java
- 客戶關係管理(CRM)是什麼?CRM定義最全解讀!
- 嵌入式C語言中的組成結構是什麼C語言
- 什麼是溢價?溢價的含義
- 幽默圖:什麼是Bug纏身?什麼是義大利麵條?什麼是大泥球?
- 嵌入式Linux是什麼?它與普通Linux有什麼不同之處?Linux