多个Tomcat实例与多个Tomcat服务

时间:2017-08-28 21:26:17

标签: java tomcat web-applications containers

我有一个要求,我必须在可通过HTTP访问但在不同端口上的同一台机器上托管两个(不同的)webapp。我想知道什么是更好的解决方案,或者基本上是什么区别

  • 使用特定的catalina_home / catalina_base启动两个单独的Tomcat实例,当然还有两个配置相应的server.xml(s)
  • 在一个server.xml中拥有一个Tomcat实例并配置多个服务。 server.xml中有一个默认的 Catalina 服务,并添加另一个具有特定端口和 appbase
  • 的服务

有人可以描述选择哪种方式以及为什么?我对两个实例与两个服务之间的主要区别感兴趣吗?

1 个答案:

答案 0 :(得分:1)

两种方法的主要区别在于:

  

许多Tomcat实例

您可以在不影响其他实例的情况下启动或停止tomcat,当您需要为一个应用程序提供维护但不希望影响其他实例的可用性时,此方法非常有用。每个实例都将使用自己的资源,当机器无法保证每个tomcat实例所需的内存或处理器数量时,这可能是一个问题,就tomcat知识而言,这种方法将需要比另一个更多的资源。这种方法很容易实现。

  

一个Tomcat实例和许多服务x webapp

当您需要在Web应用程序之间共享资源时,此方法非常有用,您可以为所有Web应用程序配置单点配置,这种方法更难以隔离Web应用程序之间的问题,因为它们共存于相同的tomcat实例,例如,如果您需要对一个应用程序进行故障排除,如果它们都在同一个tomcat中运行,那该怎么办?如何读取日志文件?是一个日志文件中的两个应用程序的日志文件?还是分开了? 如果没有执行适当的配置,请小心,然后它可能是生产中的噩梦。这种方法在tomcat配置中需要更多的努力和知识,以便定义适当的服务分离,配置起来比较困难,但在效率方面更好。

  

如何决定

它依赖于

一个。服务器的资源量。

湾关于tomcat配置的IT团队的知识水平

℃。 Web应用程序的重要性,例如,如果一个应用程序非常关键,最好将它保存在一个单独的tomcat实例中,因为它可以帮助您以简单的形式隔离该特定应用程序可能出现的任何问题。

最后,这将取决于您需要实施解决方案和业务需求的背景。