在多个web应用程序之间共享应用程序服务器(tomcat)是否存在风险?



我想在共享tomcat中使用多个类似应用程序的副本我想增加内存大小,这样做有风险吗?如何提高性能?

会话切换,安全,的完整性,性能问题,线程的风险,死锁

实际上可能只有性能影响。如果你没有在不同的应用程序之间共享一个线程池(你可以在tomcat中这样做),你应该不会收到任何线程/死锁的风险。

但是在性能影响下——我指的是在不同服务器上启动应用程序的比较。在单个tomcat上启动少量应用程序与在tomcat上启动少量应用程序之间没有明显的性能差异。

BUT:至少有一些限制:

  • 你不能使用不同版本的共享库。如果你查看tomcat的。/lib文件夹,会发现一些库,比如jsp-api, servlet-api, jasper。如果你的应用程序被限制使用不同的特定版本-这可能是一个问题(它也可以解决,但它是额外的限制)。
  • 重新加载/更新一个应用程序在某些情况下,你需要重新加载tomcat,所以你需要停止/启动托管在这个tomcat上的所有应用程序。
在一个tomcat中启动几个应用程序的好处之一是可以节省一些RAM。例如:如果你的几个应用程序使用相同的库-你可以把它移动到。/lib文件夹,这样这个库将只在内存中被拾取一次(而不是每个应用程序一次)。

注:Web应用程序可以以多种方式托管,我个人更喜欢两个概念:在使用SOA/微服务架构的情况下,使用嵌入式Web服务器(tomcat/jetty)的许多微服务,或者以其他方式在单个tomcat上托管少量应用程序。

会话切换:- No impact

安全性:—No Impact

完整性:-无影响

性能问题:-是的,会有影响,因为单个web服务器必须处理所有请求。我是这样看的,一个tomcat的cpu周期vs两个独立的tomcat。此外,每个应用程序都需要一些内存,因此您还需要调整内存设置。参见单个Tomcat中的多个应用程序与Tomcat的多个实例

线程风险:-无影响

Deadlocks:- No Impact

最新更新