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