• 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;并且在整体部署规划上,将此类服务部署在同一节点上

  • 相关阅读:
    python------面向对象介绍
    python------模块定义、导入、优化 ------->re模块
    python------模块定义、导入、优化 ------->hashlib模块
    Java过滤器Filter使用详解
    EL表达式、 jstl标签
    jsp 自定义标签中的Function函数
    JSP 自定义标签
    javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
    JSP 中EL表达式用法详解
    JavaWEB
  • 原文地址:https://www.cnblogs.com/sniffs/p/12002733.html
Copyright © 2020-2023  润新知