我想在共享tomcat中使用多个类似应用程序的副本我想增加内存大小,这样做有风险吗?如何提高性能?
会话切换,安全,的完整性,性能问题,线程的风险,死锁
实际上可能只有性能影响。如果你没有在不同的应用程序之间共享一个线程池(你可以在tomcat中这样做),你应该不会收到任何线程/死锁的风险。
但是在性能影响下——我指的是在不同服务器上启动应用程序的比较。在单个tomcat上启动少量应用程序与在tomcat上启动少量应用程序之间没有明显的性能差异。
BUT:至少有一些限制:
- 你不能使用不同版本的共享库。如果你查看tomcat的。/lib文件夹,会发现一些库,比如jsp-api, servlet-api, jasper。如果你的应用程序被限制使用不同的特定版本-这可能是一个问题(它也可以解决,但它是额外的限制)。
- 重新加载/更新一个应用程序在某些情况下,你需要重新加载tomcat,所以你需要停止/启动托管在这个tomcat上的所有应用程序。
注:Web应用程序可以以多种方式托管,我个人更喜欢两个概念:在使用SOA/微服务架构的情况下,使用嵌入式Web服务器(tomcat/jetty)的许多微服务,或者以其他方式在单个tomcat上托管少量应用程序。
会话切换:- No impact
安全性:—No Impact
完整性:-无影响
性能问题:-是的,会有影响,因为单个web服务器必须处理所有请求。我是这样看的,一个tomcat的cpu周期vs两个独立的tomcat。此外,每个应用程序都需要一些内存,因此您还需要调整内存设置。参见单个Tomcat中的多个应用程序与Tomcat的多个实例
线程风险:-无影响
Deadlocks:- No Impact