嵌入式与独立 Tomcat ( HTTP ) 服务器

Posted

技术标签:

【中文标题】嵌入式与独立 Tomcat ( HTTP ) 服务器【英文标题】:Embedded vs Stand alone Tomcat ( HTTP ) server 【发布时间】:2014-01-11 05:57:03 【问题描述】:

我正在开发一个新项目,该项目将是一个具有前端 UI 和后端 Web 服务的 Web 应用程序。我开始研究要使用哪些服务器,例如 Tomcat / Jetty 等等。我还注意到这些 HTTP 服务器有一个嵌入式版本。我不明白何时将嵌入式版本用于独立版本。我尝试使用谷歌搜索,但找不到令人信服的答案,如果有人向我解释嵌入式服务器的用例,我将不胜感激。提前致谢。

【问题讨论】:

【参考方案1】:

我已将 embedded-jetty 用于 Web 应用程序。我使用的原因是我不想为一个应用程序设置单独的 Web 服务器。所以我做了一个简单的java程序,在里面嵌入了jetty,并通过java代码配置了所有的服务器属性。现在我可以在任何没有安装 Web 服务器的机器上运行这个程序,它将充当在服务器中运行的 Web 应用程序。我可以关联任何端口并在其中编写多对多上下文/servlet 映射。

【讨论】:

嗯,如果我要在开发阶段更改主机,嵌入式服务器会很有帮助。那么在部署的便利性和测试更改方面没有任何区别吗? 嵌入式码头提供热交换,这是我检查过的,但关于其他服务器属性(可能我什至不知道)我还没有检查过。【参考方案2】:

当您将应用程序视为操作系统进程并且它将以java -jar youapp.jar 之类的内容启动时,嵌入式服务器非常有用。在这种情况下,无需预先使用给定的应用服务器(例如 Tomcat)设置盒子。此类应用程序可由最终用户运行,无需额外安装和配置应用服务器。

像 Jenkins 这样的应用程序从这种封装中受益匪浅。另一种情况是在 Heroku 等云服务上部署时。您将应用程序服务器包装在您的 jar 中,就无需将服务器安装在此类云盒上。

这里本质上是在给定的嵌入式服务器上运行单个 Web 应用程序。但是,如果您希望在两个上下文 $root/app1 $root/app2 上安装两个 Web 应用程序,那么嵌入式应用程序服务器对您来说不是一个好的选择。

【讨论】:

我明白,这是一篇旧文章,但这个链接可能会帮助其他人,因为我遇到了同样的问题 Application Servers - Sort of Dead

以上是关于嵌入式与独立 Tomcat ( HTTP ) 服务器的主要内容,如果未能解决你的问题,请参考以下文章

带有嵌入式或独立 tomcat 的 Java docker 容器?

spring boot 嵌入式 tomcat 不以 jcifs smb 库开头

使用嵌入式 tomcat 服务器进行 JUnit 测试,如何为 http 和 https 连接器指定自动端口?

Spring Boot 嵌入式 Tomcat 性能

Springboot入门

Tomcat部署与配置