Mule - 单个mule实例中的单个应用程序的多个应用程序与多个流程

时间:2016-02-25 21:04:35

标签: deployment mule

我将使用DataWeave和其他mule组件将ETL作业(100)转换为Mule ESB。我在考虑是否有任何关于如何将这些放入骡子应用程序的首选设计。

  

一个或两个mule应用程序,每个作业的流量 VS 个人   每个工作的骡子申请

我正在考虑它如何对内存消耗,上下文,线程等产生影响。

有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:2)

我认为拥有不同的应用程序或一个应用程序,它在性能方面并没有真正有所作为。 我认为你应该分开考虑这2个因素

  • 如果工作需要共享许多常见的逻辑和/或数据,而不是将其放在同一个应用程序中
  • 即使他们不需要共享共同的逻辑,但他们提供相同的业务需求,而不是将其保留在同一个应用中

除此之外,还要考虑一下这些转换是否可以成为真正的REST API,您可以根据需要请求数据,并且可以重复使用,如果是,则可以这样做。

这是我的2美分。 希望它有所帮助。

答案 1 :(得分:1)

这两个选项都是可能的 - 一个,在应用程序中使用一个流并独立部署,第二个,将多个流,多个应用程序捆绑到可部署的中。

第一种情况下的权衡是 - 相对更多的内存消耗,因为每个应用程序都在自己的线程中启动,需要管理更多应用程序,在独立部署时管理这些应用程序的细粒度控制。

在第二种情况下,内存消耗可能较低,管理较少的应用程序很容易,但要进行一次更改,还需要停止其他正在运行的ETL作业。

最好的方法可能是将相关的ETL作业合并到一个应用程序中。

答案 2 :(得分:1)

我认为将它们分开使其在长期运行时更具可扩展性和可管理性,同时牢记特定情况,如@Mauro Rocco也提到

  1. 在同一个应用中为同一业务需求保持流动
  2. 我说的是将公共流程和逻辑放在可以由多个应用程序引用的单独的公共应用程序中。
  3. 使用这种方法,如果某个应用程序由于某种原因而失败,其他应用程序将不会受到易于维护和测试的影响,并且不会认为任何方法中的内存消耗都会有所不同