2016-02-25 80 views
1

多个流与单一的应用程序,我要转换ETL作业(100的)到骡子ESB使用DataWeave等骡子组成。我在考虑是否有任何关于如何将这些应用程序放入mule应用程序的首选设计。骡子 - 多种应用VS单骡子例如

一个或两个骡子应用与每个作业VS每个作业

我正在考虑如何将它使一个不同内存消耗,环境,穿线等个人 骡子的应用流

有什么想法?

谢谢。

回答

2

我认为有不同的应用程序或一个应用程序,它并没有真正在性能方面的差异。 我想你应该在考虑这个两个因素

  • 如果工作需要有许多共同的逻辑和/或比把它在相同的应用程序
  • 即使他们不需要的数据分裂服用有着共同的逻辑,但它们服务于相同的业务需求比保持在相同的应用程序

除此之外还要考虑如果一些这种转变可能会成为真正的REST API,你可以请求对需求数据以及可如果是的话,可能会重复使用。

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

+0

我同意,按照逻辑/业务需求对工作进行分组在这种情况下可能更明智。创建100个骡子应用程序或100个流程的单个应用程序将是维护和扩展的恶梦:)。可以创建具有公共代码的域应用程序,并且具有一些类似作业组的所有应用程序都可以进入该域。就像@Charu Khurana提到的那样,它可能会或可能不会包含所有常见的逻辑,因为域对可以在那里发生的事情有一些限制。创建一个通用的mule应用程序意味着将它包括到每个应用程序的jar/otherway中。 –

1

这两个选项是可能的 - 一个,使用在应用程序中一个流动和独立地和第二展开,捆绑一个数量的流,多个应用程序的到可部署。

在第一种情况下的权衡是 - 相对更多的内存消耗,因为每个应用程序在自己的线程开始,更多的应用程序来管理,来,因为独立部署,管理这些应用程序进行细粒度的控制。

在第二种情况下,内存消耗可能较低,这将是易于管理更少的应用程序,而是让一个变化将需要停止其他工作ETL作业为好。

也许最好的办法是相关的ETL作业组合成一个应用程序。

+0

我像@Mauro Rocco提到的那样,认为逻辑/业务分组的工作可能是这些权衡之间的平衡桥梁。感谢您的意见。 –

1

我觉得让他们分开使得它更具扩展性和可管理性在长期来看,在考虑到具体的情况下保持为@Mauro罗科也提到

  1. 保持在一起,相同的业务需要在相同的应用程序
  2. 我流说的是将共同的流程和逻辑放在可以被多个应用程序引用的单独的公共应用程序中。

使用这种方法,如果一个应用程序由于某种原因失败,其他应用程序将不会被简化维护和测试的影响,并且不认为内存消耗将是任何任何不同的方法