【问题标题】:Mule ESB data flow designMule ESB数据流设计
【发布时间】:2014-07-27 18:09:23
【问题描述】:

我需要有关如何最好地在 Mule Studio 中实施流程的建议。 我需要根据三个数据库过程返回的数据创建一个 Web 服务。也就是说,我需要连续运行三个程序来获取必要的数据。每个后续过程都使用前一个过程的结果作为输入参数。 所以...哪个更好:

  1. 在数据库端编写一个过程,该过程将运行三个过程并最终为 Web 服务生成所需数量的数据。
  2. 从 Studio 调用三个过程,最终形成所需的数据数组(我现在知道如何将前一个过程结果存储在 mule 中的某个位置以运行下一个过程)?
  3. 哪一点(1 或 2)会更快?

【问题讨论】:

    标签: database stored-procedures mule esb servicebus


    【解决方案1】:
    1. 是结合所有三个过程还是从 Mule 中编排它们是您的决定。

    2. 每个过程调用的结果将自动成为 Mule 流的负载,以便下一个过程可以使用数据。如果您想存储每个过程的信息,您可以使用enricher,它将结果存储在您选择的流变量、会话变量或消息属性中:http://www.mulesoft.org/documentation/display/current/Message+Enricher

    如果您想同时运行每个过程并汇总三个响应,您可以查看scatter-gather http://www.mulesoft.org/documentation/display/current/Scatter-Gather 或者您也可以使用 google 找到其他一些方法来分叉和加入,也可以使用 aggregators

    1. 第 1 点可能会更快,因为您打开的与数据库等的连接较少,但这完全取决于您的程序等。您可以从 Mule 中的编排中受益。我会尝试一下,看看有什么适合您的需求。

    【讨论】:

    • 瑞恩,谢谢您的回复。我可以再问你一个吗?一般:如何创建将从表 HR.EMPLOYEES 和 HR.JOB_HISTORY 中返回数据的 web 服务(希望您知道 oracle db 中的这些表)? Web 服务应接收 EMPLOYEE_ID 并返回 FIRST_NAME、LAST_NAME、JOB_ID、DEPARTMENT_ID、START_DATE。一名员工可以在多个部门工作。我尝试过类似picpaste.com/hrtest-QmS6LKV7.JPG 的方法,但不知道它是否正确。我也可以创建从数据库返回数据但从单个选项卡返回数据的网络服务器:picpaste.com/hrtest2-Zao3xqx1.JPG
    【解决方案2】:

    将所有程序合二为一会更快。而 mule 中的编排将为您提供更多的集成控制。基本上是设计决策。你想把你的集成逻辑放在哪里?对我来说,将其保留在集成层中更有意义,除非您遇到严重的性能问题。响应 Ryan 的建议,先尝试一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 2015-04-08
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      相关资源
      最近更新 更多