将 Mule ESB 部署到生产环境中有多种方法。根据文档,似乎推荐将 Mule 作为独立服务运行。
是否有任何理由不在生产中独立运行 Mule?我确信它是稳定的,但就性能、可靠性和资源利用率而言,它与 Tomcat 相比如何?
出于任何原因,我是否仍应考虑在 Tomcat 中运行它?
将 Mule ESB 部署到生产环境中有多种方法。根据文档,似乎推荐将 Mule 作为独立服务运行。
是否有任何理由不在生产中独立运行 Mule?我确信它是稳定的,但就性能、可靠性和资源利用率而言,它与 Tomcat 相比如何?
出于任何原因,我是否仍应考虑在 Tomcat 中运行它?
使用 Tomcat 或任何其他 Web 容器,您可以将该容器的 Web 层用于 HTTP 入站端点(通过 Servlet 传输),而不是使用 Mule 的 HTTP 或 Jetty 传输。
在类加载、热重新部署的处理和日志记录方面发现了其他差异。
现在人们不单独使用Mule的主要原因是公司政策,即“你应该部署在_上”。当生产团队获得了维护特定 Java 应用程序/Web 服务器的经验时,他们希望您在该上下文中部署您的 Mule 项目,以便他们可以以众所周知且一致的方式管理/监控它。
但是,如果您对在 Mule 中获得的入站 HTTP 层感到满意,并且您可以在生产环境中部署它,那么就去做吧。它已准备好生产。
Mule 实际上建议独立部署。在诸如tomcat之类的容器中,它必须共享线程池、堆等……这显然会阻止它发挥最佳性能。
您想要在像 tomcat 这样的容器中的主要原因是为了获得自动部署。即你可以只更新你的Mule 应用程序.war 并且容器将用新的应用程序重新启动mule。这有助于测试。
此外,一些传输特定于在容器内运行,例如 servlet 传输。OTOH 在设计解决方案时,让 Mule 在您的容器和您的 servlet 之间传输,您做错了。