【问题标题】:Standalone Instance, or Deployed War?独立实例,还是部署战争?
【发布时间】:2013-07-10 20:04:00
【问题描述】:

为什么要将 WAR 部署到诸如 tomcat 之类的 Web 服务器上,而不是独立运行它?

与独立运行实例相比,部署为 .war 有什么好处吗?

我似乎找不到任何理由说明为什么最好部署一个 Web 应用程序,然后单独运行它。

战争部署只是标准做法吗?

用户群的大小与它有什么关系吗?

它是基于每个应用程序的吗?

只是管理员偏好吗?

我问这些问题的原因是我有一个 web 服务,我可以选择将我的 war 文件部署到 tomcat,或者单独运行它。是否有关于为什么要使用其中一个的一般做法?似乎没有什么理由,更多的是这样做。

我不同意“一直都是这样……”的做法

如果有人能说明何时使用其中一个而不是另一个,以及为什么这样做更好,那将不胜感激。

【问题讨论】:

  • 有几个(真正的)原因。我想到了一个非常有限的限制:套接字。如果您有独立的应用程序,每个应用程序都有自己的端口。每次你部署一个新的,你将不得不担心防火墙、代理和网络相关的东西。此外,您的客户端可能无法对某些端口执行请求。
  • 好答案。但是...我们正在运行的应用程序是针对公司内部网的。防火墙、代理、端口转发......等并不是真正值得关注的。虽然只需要一个端口,但这样的维护更少。
  • 多个端口不打扰您?可能是 Intranet,但使用单个应用程序服务器,一击解决所有问题。对于一、二、三系统,多端口是可以的。当你有数百个时会发生什么?考虑更高级的东西,例如集群、负载平衡、性能分析、日志记录、安全性、命名、系统之间的集成。所有这一切都由应用服务器负责,标准和模式可为您提供帮助。有了独立的应用程序,您就可以靠自己了。每个新人都必须从最细微的地方开始学习。需要紧急帮助?太糟糕了。

标签: web-services web-applications


【解决方案1】:

Tomcat 将为您处理所有 HTTP 内容。诸如 HTTP 请求和响应、会话和 JSP 之类的东西。也许这会有所帮助 - http://wiki.apache.org/tomcat/FAQ

【讨论】:

  • 我明白什么是tomcat,它的作用。我不明白的是,当您可以选择独立运行应用程序或部署到 tomcat 时,为什么要选择其中一个。目前有问题的软件是部署在tomcat上的战争。该软件不需要部署,可以运行一个独立的实例。为什么你会选择一个而不是另一个?
  • 使用 tomcat 的一个原因是如果您需要水平扩展(集群)或需要在 HttpD 代理后面切换它。
  • tomcat 也会给你一些使用情况的统计数据。 tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
【解决方案2】:

如果您在一台服务器上只有一个网站,那么没有区别...您可以将整个网站制作成 PowerPoint 演示文稿并通过电子邮件发送。

【讨论】: