非嵌入式tomcat的优势是什么?

非嵌入式tomcat的优势是什么?,tomcat,jakarta-ee,Tomcat,Jakarta Ee,我发现了嵌入式tomcat,我觉得它非常方便 虽然在过去我们似乎更频繁地使用非嵌入式Tomcat(有更多关于非嵌入式Tomcat的教程和书籍),但非嵌入式Tomcat的使用仍在继续 非嵌入式Tomcat的优势是什么?为什么不是每个人都一直使用嵌入式Tomcat 此外: 嵌入的Tomcat文档和站点在哪里? 我期待嵌入tomcat文档和站点,但找不到它 嵌入式Tomcat和非嵌入式Tomcat在源代码上有什么区别吗 每个人都有不同的需求和用例。对于您的用例,嵌入式使用显然是理想的。并非所有情况都如

我发现了嵌入式tomcat,我觉得它非常方便

虽然在过去我们似乎更频繁地使用非嵌入式Tomcat(有更多关于非嵌入式Tomcat的教程和书籍),但非嵌入式Tomcat的使用仍在继续

非嵌入式Tomcat的优势是什么?为什么不是每个人都一直使用嵌入式Tomcat

此外:

  • 嵌入的Tomcat文档和站点在哪里? 我期待嵌入tomcat文档和站点,但找不到它
  • 嵌入式Tomcat和非嵌入式Tomcat在源代码上有什么区别吗

  • 每个人都有不同的需求和用例。对于您的用例,嵌入式使用显然是理想的。并非所有情况都如此

    运行嵌入式Tomcat就像将“servlet容器”翻过来,而不是托管应用程序的容器(Tomcat),而是由应用程序托管容器。如果你喜欢这种比喻,那就是控制反转

    使用嵌入式Tomcat需要应用程序针对Tomcat特定的API进行编写。这可能会也可能不会增加您或您的应用程序的复杂性

    基于服务的程序(如Tomcat)通常有系统监视它们,以确保它们保持运行,如果它们不继续运行,则自动重新启动。如果您切换到嵌入式策略,那么使用现有工具实现此目的的机会就会减少:您的应用程序必须监视嵌入式容器的运行状况,并在必要时采取措施

    使用嵌入式容器时,资源管理可能会出现问题。如果您有十几个web应用程序都应该一起工作,那么让一个容器实例承载这些单独的应用程序更有意义吗?还是应该将它们捆绑到一个程序中,并在其中嵌入一个容器实例?如果您只想升级一个应用程序,该怎么办?您需要重新构建整个包来更新一个组件。或者您应该将它们分别部署为一个单独的应用程序,并带有自己的嵌入式容器?这通常意味着多个JVM,这意味着更高的内存需求、端口冲突和其他类似的资源相关问题

    嵌入式和非嵌入式Tomcat都有很多有效的用例。幸运的是,你有一个选择

    嵌入的Tomcat文档和站点在哪里?我期待嵌入tomcat文档和站点,但找不到它

    这主要是在美国

    嵌入式Tomcat和非嵌入式Tomcat在源代码上有什么区别吗


    它是同一个产品。

    一个人可以在单独的Tomcat服务器上运行多个web应用程序。这在嵌入式Tomcat中是不可能的。随着移动到微服务,这已经变得不那么流行了。@Boristespider用户可以使用嵌入式tomcat启动多个应用程序,这非常方便~!是的,在不同JVM的不同端口上,没有共享状态。当然,我可以将Hazelcast添加到共享状态,并将Nginx添加到同一端口上运行(有效),但这比仅仅共享一个Tomcat实例要复杂得多。@BoristSpider一个嵌入式Tomcat实例可以运行任意数量的web应用程序。同一JVM上的任意数量的端口(仅包括一个),具有任意多的共享状态。使用嵌入式Tomcat实例运行单个应用程序是非常常见的。@Christopher是的,你当然是对的。我应该更清楚,在常见用例(如Spring Boot)中,单个应用程序被部署到其自己的嵌入式服务器实例中。值得注意的是,在监控部分,Spring Boot支持解决了许多问题。显然还有其他缺点,但这只是一个开始。