-
jvm实例,tomcat容器,spring容器,在内存中的关系5
1.一个java项目对应一个jvm 吗?
2.tomcat里面加载多个java项目 ,是不是用了一个jvm?
3.java项目中的spring容器,部署到tomcat容器,启动tomcat以后的jvm实例 ,在内存中是怎么一个包含关系?
如果说 一个程序启动一个jvm实例,一个项目能保证在一个jvm里面吗
另外 如果一个tomcat加载n各项目 他们之间彼此调用(比如通过http访问),是不是跨jvm?
谢谢
问题补充:csslisi 写道1、集群环境可能是多个jvm
2、一个java进程就是一个jvm,main方法启动的,同一个tomcat的多个web应用都在一个jvm里
3、jvm包含tomcat运行环境,tomcat加载了应用上下文,应用上下文加载spring运行环境
4、一个tomcat的各个项目之间是独立的上下文环境,如果通过http访问,也相当于跨jvm,不是引用调用csslisi 写道1、集群环境可能是多个jvm
2、一个java进程就是一个jvm,main方法启动的,同一个tomcat的多个web应用都在一个jvm里
3、jvm包含tomcat运行环境,tomcat加载了应用上下文,应用上下文加载spring运行环境
4、一个tomcat的各个项目之间是独立的上下文环境,如果通过http访问,也相当于跨jvm,不是引用调用
谢谢你的回复
我想问下既然多个应用在一个tomcat下的话,tomcat又在一个jvm里面
是不是说 启动tomcat里面的每个项目只是用了线程?
这里面的项目之间的通信是进程间通信 还是属于线程间通信呢?
如果跨jvm肯定是进程间通信了吧 但你讲道 这些项目在同一个jvm里面 能在解释下吗
问题补充:csslisi 写道应用跟线程没什么关系,线程是个计算执行的概念,而应用上下文占用的是内存。你如果打印线程名称,就能看到应用线程是动态分配的,线程1可以在应用1出现,也可以在应用2出现。其实Tomcat是JVM的main进程启动的一个Socket服务,同时会加载应用的上下文环境、初始化执行线程池
项目之间的调用看你用什么方式,如果通过http访问,就相当于跨jvm;项目虽然都在一个虚拟机里,但属于不同的类加载器环境,除非定义SystemClassloader级别的静态变量,没想到有其他办法能引用调用,呵呵。
tomcat线程之间不可以相互调用,除非是自定义的多线程。
谢谢你的回复
最后再多问一句啊
两个项目部署在一个tomcat里面和两个项目分别部署在两个tomcat里面 两种情况
这两个项目之间的数据传输(比如通过httpClient访问),都是跨jvm,是不是两种情况的效率完全一样呢?
2011年12月26日 10:51
2个答案 按时间排序 按投票排序
-
采纳的答案
应用跟线程没什么关系,线程是个计算执行的概念,而应用上下文占用的是内存。你如果打印线程名称,就能看到应用线程是动态分配的,线程1可以在应用1出现,也可以在应用2出现。其实Tomcat是JVM的main进程启动的一个Socket服务,同时会加载应用的上下文环境、初始化执行线程池
项目之间的调用看你用什么方式,如果通过http访问,就相当于跨jvm;项目虽然都在一个虚拟机里,但属于不同的类加载器环境,除非定义SystemClassloader级别的静态变量,没想到有其他办法能引用调用,呵呵。
tomcat线程之间不可以相互调用,除非是自定义的多线程。2011年12月26日 22:11
-
1、集群环境可能是多个jvm
2、一个java进程就是一个jvm,main方法启动的,同一个tomcat的多个web应用都在一个jvm里
3、jvm包含tomcat运行环境,tomcat加载了应用上下文,应用上下文加载spring运行环境
4、一个tomcat的各个项目之间是独立的上下文环境,如果通过http访问,也相当于跨jvm,不是引用调用2011年12月26日 15:19
相关推荐
这通常发生在容器停止时,某些应用组件未能正确地释放其持有的资源,导致Java虚拟机(JVM)无法进行垃圾回收。这个问题在日志中可能表现为警告信息,比如提到某个线程仍在运行,可能会创建内存泄漏。 问题分析: ...
《Tomcat中文手册》是针对Apache Tomcat这款广泛使用的开源Java Servlet容器的详细指南,它为不熟悉英文文档或者希望快速查找中文参考资料的用户提供了一种宝贵的资源。Tomcat作为轻量级的应用服务器,主要用于运行...
Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,是一款开源、免费的Web服务器和应用服务器,专门用于运行Java Servlet和JavaServer Pages(JSP)的容器。它以其轻量级、高效能和易用性而受到广大开发者的...
2. **跨平台**,可以在任何JVM和大多数Web容器中运行,包括Tomcat6.0。 3. **多语言支持**,包括Java、C、C++、AJAX、ACTIONSCRIPT等。 4. **多种协议支持**,如STOMP、OpenWire、REST。 5. **优秀的Spring框架集成*...
了解如何在Spring Boot中配置和使用Tomcat,能够提高开发效率。 十、持续集成与自动化部署 在DevOps实践中,Tomcat与持续集成工具(如Jenkins)结合,可以实现应用的自动化构建、测试和部署。 这两本书籍深入浅出...
内存中的一部分必须用于系统dll的加载,那么真正剩下的也许只有400M,现在关键的地方出现了:当你使用Java创建一个线程,在JVM的内存里也会创建一个Thread对象,但是同时也会在操作系统里创建一个真正的物理线程...
性能优化方面,可以调整Tomcat的线程池大小、JVM堆内存、以及启用连接器的Keep-Alive选项来提高响应速度。另外,通过使用缓存和GZIP压缩,可以减少网络传输的数据量,提升用户体验。 最后,对于更复杂的项目,可以...
ActiveMQ是一款开源的消息中间件,它遵循JMS(Java Message Service)1.1规范,能兼容J2EE1.4及以上版本,并能在任何JVM上运行,支持多种Web容器。此框架不仅提供了Java客户端,还支持C、C++、AJAX、ACTIONSCRIPT等...
在IT领域中,Apache Tomcat作为一款免费开源的Servlet容器,被广泛应用于Java Web项目的开发与部署。随着应用系统的复杂度增加及用户量的增长,Tomcat性能优化成为确保服务稳定性和响应速度的关键环节。本文将从内存...
在微服务架构中,每个服务通常都有独立的Tomcat实例,这有助于实现服务的隔离和扩展。同时,负载均衡器如Nginx或Apache HTTP Server可以分发请求到多个Tomcat实例,提高系统的可用性和响应速度。 十、故障排查与...
在Session共享的场景中,Spring可以借助于Spring Session模块,它允许我们将Session数据存储在非传统的存储介质中,如Redis,而不是默认的JVM内存。 接下来是Redis,一个高性能的键值存储系统。Redis支持多种数据...
- **内存调优**:分析了Tomcat的内存配置,包括JVM参数的设置和内存泄漏的预防。 5. **安全与部署** - **安全管理**:涵盖了用户认证、授权、会话管理等安全措施的实施。 - **虚拟主机**:介绍了如何在Tomcat中...
在Spring中,你可以通过`@Scope("prototype")`来创建多实例,避免单例bean被容器误认为是静态资源而被回收。 5. **内存泄漏**:如果程序中存在内存泄漏,随着运行时间的增长,可用内存逐渐减少,可能导致应用程序...
JVM Route是一种在Tomcat集群中实现Session复制的方法,它通过在Session ID中附加一个特定的标识符(通常是一个服务器的唯一标识),使得同一个用户的请求总是被路由到具有相同标识符的Tomcat实例上。这样,即使请求...
Tomcat7作为Servlet容器,负责加载、实例化和管理Servlet。 2. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,从而方便地创建动态网页内容。Tomcat7支持JSP2.2...
Tomcat可以与EJB容器(如JBoss、GlassFish)结合,实现完整的Java EE功能,也可以作为其他应用服务器的Servlet容器,如在Spring Boot中嵌入Tomcat。 总之,Apache Tomcat 5.5.33是Java Web开发中的重要工具,虽然...
总的来说,"很标准的Tomcat"意味着这是一个遵循标准、广泛认可的Web服务器实例,而Tomcat 6.0的使用则涵盖了Java Web开发的基础知识,包括安装、配置、应用部署、安全管理以及性能调优等多个方面。理解和掌握这些...
6. **Tomcat优化**:包括调整JVM参数(如堆内存大小、垃圾回收策略)、设置线程池大小、开启压缩、减少日志输出等,以提升性能和稳定性。 7. **安全设置**:设置用户访问控制、配置SSL/TLS实现HTTPS、安装和配置...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能...附录B 在Spring中开发Web Service
- **嵌入式Servlet容器:**Spring Boot内置了Tomcat、Jetty等容器,无需额外部署。 - **依赖管理:**提供了一套统一的依赖版本管理方案,避免版本冲突问题。 - **生产就绪特性:**包括健康检查、监控等功能,方便...