我正在从事一个Java项目,并且一直在使用Tomcat服务器进行本地测试。然而,我正要提升到Heroku,我发现an article建议使用“嵌入式”Tomcat。
我环顾四周,想看看在Java服务器的上下文中“嵌入式”到底是什么意思,但似乎Google上的每个人都已经理解了“嵌入式”的含义。我没有。部署“常规”Tomcat服务器和“嵌入式”Tomcat服务器有什么不同?
发布于 2014-04-20 07:30:44
“嵌入式”意味着您的程序与服务器一起发布,而不是将web应用程序部署到外部服务器。
使用嵌入式服务器,您的应用程序与所选的服务器打包在一起,并负责服务器的启动和管理。
从用户的角度来看,区别在于:
带有嵌入式服务器的
war存档文件,需要将其部署到某个服务器嵌入服务器对于测试非常有用,您可以在测试期间随意启动或停止服务器。
发布于 2019-10-10 03:45:44
传统上,要托管Java web应用程序,您需要在服务器上安装单个Tomcat实例,并将所有WAR文件推送到该服务器上。也许您将几个Tomcat实例聚集在一起,但想法是相同的。只有一个Tomcat服务器,您所有的Java web应用程序都部署到它上。
传统 vs嵌入式Tomcat
在微服务的世界里,事情有点不同。对于微服务,我们不是使用一台Tomcat服务器托管许多web应用程序,而是将一个web应用程序部署到一台tomcat服务器上,然后将其压缩到可通过Java命令执行的zip、jar或war文件中。因此,现在我们有了一个可执行文件,其中包含运行web应用程序所需的所有内容,包括Tomcat服务器。
基于容器的分布式
你可以在一个可执行的WAR文件中获得Jenkins,虽然我相信他们嵌入的是Jetty,而不是Tomcat,但这是相同的想法。但与分发jar/war相比,人们所做的不太可能是将整个东西打包在一个docker容器中,并将其全部部署到Kubernetes或Heruku或其他任何地方。
Tomcat和嵌入式
创建嵌入式tomcat服务器的最简单方法之一是使用Apache Maven。下面是一个Maven构建的示例,它不仅可以构建web应用程序,还可以下载tomcat并将所有内容打包到一个可执行的JAR中:

发布于 2014-04-20 07:31:30
对于here来说,就是将tomcat“嵌入”到你的应用程序中。也就是说,您负责启动和停止tomcat。这与正常的容器操作相反,但您可能会发现它对于快速部署和测试很有用。
https://stackoverflow.com/questions/23176717
复制相似问题