【问题标题】:Running Mule Standalone vs Tomcat in Production在生产环境中运行 Mule Standalone 与 Tomcat
【发布时间】:2012-06-06 19:16:55
【问题描述】:

有很多方法可以将 Mule ESB 部署到生产环境中。根据文档,似乎推荐将 Mule 作为独立服务运行。

是否有任何理由不在生产环境中独立运行 Mule?我确信它是稳定的,但就性能、可靠性和资源利用率而言,它与 Tomcat 相比如何?

出于任何原因,我是否仍应考虑在 Tomcat 中运行它?

【问题讨论】:

    标签: esb mule production


    【解决方案1】:

    使用 Tomcat 或任何其他 Web 容器,您可以将容器的 Web 层用于 HTTP 入站端点(通过 Servlet 传输),而不是 Mule 的 HTTP 或 Jetty 传输。

    在类加载、热重新部署的处理和日志记录方面发现了其他差异。

    现在人们不使用Mule 独立的主要原因是公司政策,即“你应该部署在_”。当生产团队获得了维护特定 Java 应用程序/Web 服务器的经验时,他们希望您在该上下文中部署您的 Mule 项目,以便他们能够以众所周知且一致的方式管理/监控它。

    但是,如果您对在 Mule 中获得的入站 HTTP 层感到满意,并且您可以在生产环境中部署它,那就去吧。已准备好生产。

    【讨论】:

    • 谢谢大卫!实际上,我正在阅读您的 Mule in Action 书籍的 MEAP 副本。到目前为止享受它!
    • 独立运行有什么需要注意的吗?容易出现 PermGen 问题吗?我们应该增加 JVM 堆大小吗?还有其他的吗?我熟悉 Tomcat / Spring 的这些管理问题。但我从来没有在 mule 容器上部署过支架。
    • 我不知道有任何此类问题,除了stackoverflow.com/questions/10699940/…(Mule 嵌入和独立时都会发生)。大多数行为应该与 Spring web-app 相同。应用程序热重载的处理会出现差异,这在 TC 和 Mule Standalone 之间有很大的不同。
    【解决方案2】:

    Mule 实际上建议独立部署。在容器内,例如tomcat 它必须共享线程池、堆等......这显然会阻止它发挥最佳性能。

    您想要在像 tomcat 这样的容器中的主要原因是为了获得自动部署。 IE。您只需更新您的 Mule 应用程序 .war,容器将使用新应用程序重新启动 mule。这有助于测试。

    还有一些传输是特定于在容器内运行的,例如 servlet 传输。 OTOH 在设计解决方案时让 Mule 在您的容器和您的 servlet 之间传输 your'e doing it wrong.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2011-03-20
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      相关资源
      最近更新 更多