Mulesoft 简明教程
MuleSoft - Core Components & Configuration
Mule 最重要的能力之一是它可以使用组件执行路由、转换和处理,因此组合各种元素的 Mule 应用程序配置文件非常大。
Mule 提供的配置模式类型如下:
-
Simple service pattern
-
Bridge
-
Validator
-
HTTP proxy
-
WS proxy
Configuring the component
在 Anypoint 工作室中,我们可以按照以下步骤配置组件:
Step 1
我们需要将希望在 Mule 应用程序中使用的组件拖动过来。例如,在此处,我们将 HTTP 侦听器组件用作如下所示:
Step 2
接下来,双击该组件以获取配置窗口。对于 HTTP 侦听器,如下所示:
Step 3
我们可以根据项目的需要配置组件。例如,我们针对 HTTP 侦听器组件所执行的操作:
核心组件是 Mule 应用程序中工作流程的一个重要组成部分。处理 Mule 事件的逻辑由这些核心组件提供。在 Anypoint 工作室中,要访问这些核心组件,可以从 Mule 调色板中单击“核心”,如下所示:
以下是各种 core components and their working in Mule 4 :
Custom Business Events
此核心组件用于收集有关 Mule 应用程序中处理业务交易的流以及消息处理程序的信息。换句话说,我们可以使用 Custom Business Event 组件在我们的工作流中添加以下内容:
-
Metadata
-
Key performance Indicators (KPIs)
How to add KPIs?
以下是为 Mule 应用程序中的流程添加关键绩效指标的步骤:
Step 1 - 按照 Mule Palette → Core → Components → Custom Business Event 添加 Custom Business Event 组件到 Mule 应用程序中的工作流中。
Step 2 - 单击组件以将其打开。
Step 3 - 现在,我们需要为显示名称和事件名称提供值。
Step 4 - 要从消息有效负载中捕获信息,请添加关键绩效指标,如下所示:
-
为 KPI(跟踪:元数据元素)提供名称(键),并提供值。名称将用于运行时管理器的搜索界面。
-
提供可能为任何 Mule 表达式的值。
Dynamic Evaluate
此核心组件用于在 Mule 应用程序中动态选择脚本。我们还可以通过转换消息组件使用硬核脚本,但使用 Dynamic Evaluate 组件是一个更好的方法。此核心组件的工作方式如下 −
-
首先,它会评估应该产生另一个脚本的表达式。
-
然后,它评估该脚本以得出最终结果。
通过这种方式,它允许我们动态选择脚本,而不是对其进行硬编码。
Example
以下是一个通过 ID 查询参数从数据库中选择脚本并将其存储在名为 MyScript 的变量中的示例。现在,动态评估组件将访问变量以调用脚本,以便它可以从 UName 查询参数中添加一个 name 变量。
流程的 XML 配置如下所示 −
<flow name = "DynamicE-example-flow">
<http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
<db:select config-ref = "dbConfig" target = "myScript">
<db:sql>#["SELECT script FROM SCRIPTS WHERE ID =
$(attributes.queryParams.Id)"]
</db:sql>
</db:select>
<ee:dynamic-evaluate expression = "#[vars.myScript]">
<ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
</ee:dynamic-evaluate>
</flow>
脚本可以使用消息、负载、变量或属性之类的上下文变量。但是,如果你想要添加自定义上下文变量,你需要提供一组键值对。
Flow Reference Component
如果你想要在同一 Mule 应用程序中将 Mule 事件路由到另一个流或子流,那么流引用组件是正确的选择。
Characteristics
以下是此核心组件的特征 −
-
此核心组件允许我们像当前流中的单个组件一样对待整个引用流。
-
它将 Mule 应用程序分解成离散的可重用单元。例如,一个流正在定期列出文件。它可能会引用另一个处理列表操作输出的流。
-
通过这种方式,我们可以附加指向处理流的流引用,而不是附加整个处理步骤。下图显示流引用核心组件指向名为 ProcessFiles 的子流。
Working
通过以下图表可以了解流引用组件的工作原理 −
该图表显示当一个流引用同一个应用程序中的另一个流时,Mule 应用程序中的处理顺序。当 Mule 应用程序中的主工作流被触发时,Mule 事件会一直传递并执行流,直到 Mule 事件到达流引用。
在到达流引用后,Mule 事件从头到尾执行引用流。一旦 Mule 事件完成执行引用流,它将返回到主流。
Example
为了更好地理解, let us use this component in Anypoint Studio 。在此示例中,我们将 HTTP 侦听器用于 GET 消息,正如我们在上一章节中所做的一样。因此,我们可以拖放组件并进行配置。但对于此示例,我们需要添加子流组件并在其下方设置有效负载组件,如下所示 −
接下来,我们需要通过双击配置 Set Payload 。此处我们给出的值“子流已执行”,如下所示 −
在成功配置子流组件后,我们需要将流引用组件设置在主流中设置有效负载之后,该组件可从 Mule Palette 中拖放,如下所示 −
接下来,在配置流引用组件时,我们需要在通用选项卡下选择流名称,如下所示 −
现在,保存并运行此应用程序。要对此进行测试,请转至 POSTMAN,在 URL 栏中键入 http:/localhost:8181/FirstAPP ,然后您将收到消息“子流已执行”。
Logger Component
名为记录器的核心组件通过记录重要信息来帮助我们监控和调试 Mule 应用程序,例如错误消息、状态通知、有效负载等。在 AnyPoint 工作室中,它们出现在 Console 中。
Advantages
以下是记录器组件的一些优点:
-
我们可以将此核心组件添加到工作流中的任何位置。
-
我们可以对其进行配置以记录我们指定的字符串。
-
我们可以将其配置为我们编写的 DataWeave 表达式的输出。
-
我们还可将其配置为字符串和表达式的任意组合。
Example
以下示例在浏览器中 Set Payload 中显示消息“Hello World”,并同时记录消息。
以下是上述示例中的流的 XML 配置 −
<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
<set-payload value="Hello World"/>
<logger message = "#[payload]" level = "INFO"/>
</flow>
Transfer Message Component
转换消息组件(也称为传输组件)允许我们将输入数据转换为新的输出格式。
Methods to build Transformation
我们可以借助以下两个方法构建转换 −
Drag-and-Drop Editor (Graphical View) − 这是构建转换的第一种且是最常用的方法。在此方法中,我们可以使用此组件的可视化映射器来拖放传入数据结构的元素。例如,在以下示意图中,两个树视图显示了输入和输出的预期元数据结构。连接输入到输出字段的线表示两个树视图之间的映射。
Script View − 转换的可视化映射也可在 DataWeave(用于 Mule 代码的语言)的帮助下表示。我们可以对高级转换(例如聚合、规范化、分组、连接、分区、旋转和筛选)进行编码。示例如下 −
此核心组件主要接受变量、属性或消息有效负载的输入和输出元数据。我们可以为以下内容提供特定于格式的资源 −
-
CSV
-
Schema
-
Flat file Schema
-
JSON
-
Object class
-
Simple Type
-
XML Schema
-
Excel 列名和类型
-
固定宽度列名称和类型