Java 在应用服务器(weblogic/websphere)上部署多个应用程序

Java 在应用服务器(weblogic/websphere)上部署多个应用程序,java,performance,jakarta-ee,websphere,weblogic,Java,Performance,Jakarta Ee,Websphere,Weblogic,当多个应用程序部署到一个应用服务器时,它们是否都共享同一个JVM 如果不是,每个应用程序是否针对不同的JVM 如果是,那么它不会成为一个性能问题吗?例如:多个应用程序使用相同的堆空间,这意味着更频繁的垃圾收集等 使用tomcat将这些应用程序部署为自包含的Sprinboot不是一个好主意吗 我知道我们可以选择使用不同的域为每个应用程序提供单独的JVM,但如果仍有许多应用程序服务器处于启动和运行状态,也可能会消耗更多的资源?对于weblogic server,所有部署的应用程序都共享相同的JVM。

当多个应用程序部署到一个应用服务器时,它们是否都共享同一个JVM

如果不是,每个应用程序是否针对不同的JVM

如果是,那么它不会成为一个性能问题吗?例如:多个应用程序使用相同的堆空间,这意味着更频繁的垃圾收集等

使用tomcat将这些应用程序部署为自包含的Sprinboot不是一个好主意吗


我知道我们可以选择使用不同的域为每个应用程序提供单独的JVM,但如果仍有许多应用程序服务器处于启动和运行状态,也可能会消耗更多的资源?

对于weblogic server,所有部署的应用程序都共享相同的JVM。垃圾收集的频率与您设置的最小/最大堆大小有关。将最小堆大小(-Xms)设置得更小或最大堆大小(-Xmx)设置得更大会影响垃圾收集的发生频率,并确定应用程序可以拥有的活动数据的大致数量

有关进一步资料:

使用Tomcat,您可以安排它共享同一个Tomcat,也可以使用不同的Tomcat基础。我理解,但我的问题是,哪一个更好(使用springboot+Tomcat而不是weblogic/websphere,将多个应用程序定位到同一个应用程序服务器实例,而每个应用程序都有自己的容器)。与weblogic/websphere相比,Tomcat的重量很轻。就目前情况而言,这个问题是离题的,原因有几个:[1]它太宽泛了,并且包含多个问题。[2] 它邀请基于意见的答案。[3] . 一般来说,关于应用服务器体系结构的问题在这里是无关紧要的,除非有编程方面的问题。如果有一个WebLogic服务器集群呢?在这种情况下,您不能让一个部署的应用程序同时运行在多个WebLogic服务器(以及多个JVM)上吗?为了扩展和恢复能力,WebSphere当然可以做到这一点。当然可以,否则集群将毫无意义。那么,您关于“所有部署的应用程序共享同一JVM”的说法不一定正确,对吗?集群不会影响这个问题的答案。当您对服务器进行集群时,这并不意味着您为不同的应用程序提供不同的JVM,而是意味着您的应用程序运行在多个JVM上。无论集群与否,多个应用程序将同时在特定JVM上运行。问题在于如何在应用程序之间共享JVM。它不是在多个实例上运行单个应用程序。