JVM和Tomcat的關系


最近在做微服務部署相關的項目,使用的容器為湯姆貓tomcat,過程中通過和架構師的交流以及自己的理解得出了幾個關鍵信息

這里記錄下。

JVM和tomcat之間的關系,從下面的幾個方向說明:

1、JVM,java虛擬機,不同設備運行java應用程序的平台。

2、Tomcat,apache免費開源的web應用服務器,通過java語言編寫,換句話說:tomcat亦是一個java應用程序。

--------  這里不難看出tomcat容器的啟動離不開JVM

3、JVM某種程度上可以被認為是一個虛擬的操作系統,它有着自己的內存模型等;

4、一個tomcat容器的啟動,相當於在JVM中啟動了一個進程;

5、一個tomcat容器中可以啟動多個web app這些被看做進程中啟動了多個線程。(通過在server.xml中指定多個context)

6、每個進程都有自己獨立的內存空間,因此進程間的通信較為困難;

7、而進程中的線程啟動時,不會額外的分配內存空間,換句話說:進程中的多個線程共享內存空間,因此通信較為方便快速。

 

另外一個思考就是:webUI服務中的java代碼是否有存在的必要??

現代微服務架構中,tomcat容器是一個厚重的web容器,一個微服務的啟動相當於在部署節點的JVM上增加了一個進程,這必然會帶來一定的內存開銷;

對於webUI性質的微服務,建議只保留純靜態文件(javascript、css、gif等),並且部署容器選擇更輕量級的nginx;並且在整體部署規划上,將此類服務部署在同一節點上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM