MuleSoft - Componentes principales y configuración
Una de las habilidades más importantes de Mule es que puede realizar enrutamiento, transformación y procesamiento con los componentes, por lo que el archivo de configuración de la aplicación Mule que combina varios elementos es muy grande.
Los siguientes son los tipos de patrones de configuración proporcionados por Mule:
- Patrón de servicio simple
- Bridge
- Validator
- Proxy HTTP
- Proxy WS
Configurar el componente
En Anypoint Studio, podemos seguir los pasos a continuación para configurar un componente:
Step 1
Necesitamos arrastrar el componente que deseamos usar en nuestra aplicación Mule. Por ejemplo, aquí usamos el componente de escucha HTTP de la siguiente manera:
Step 2
A continuación, haga doble clic en el componente para obtener la ventana de configuración. Para el oyente HTTP, se muestra a continuación:
Step 3
Podemos configurar el componente según el requisito de nuestro proyecto. Digamos, por ejemplo, lo hicimos para el componente de escucha HTTP:
Los componentes centrales son uno de los bloques de construcción importantes del flujo de trabajo en la aplicación Mule. La lógica para procesar un evento Mule es proporcionada por estos componentes centrales. En Anypoint Studio, para acceder a estos componentes principales, puede hacer clic en Core from Mule Palette como se muestra a continuación:
Los siguientes son varios core components and their working in Mule 4 -
Eventos comerciales personalizados
Este componente central se utiliza para la recopilación de información sobre flujos y procesadores de mensajes que manejan las transacciones comerciales en la aplicación Mule. En otras palabras, podemos usar el componente Evento comercial personalizado para agregar lo siguiente en nuestro flujo de trabajo:
- Metadata
- Indicadores clave de rendimiento (KPI)
¿Cómo agregar KPI?
Los siguientes son los pasos para agregar KPI en nuestro flujo en la aplicación Mule:
Step 1 - Sigue a Mule Palette → Core → Components → Custom Business Event, para agregar el componente Evento comercial personalizado a un flujo de trabajo en su aplicación Mule.
Step 2 - Haga clic en el componente para abrirlo.
Step 3 - Ahora, debemos proporcionar valores para el nombre para mostrar y el nombre del evento.
Step 4 - Para capturar información de la carga útil del mensaje, agregue los KPI de la siguiente manera:
Dar un nombre (clave) para el KPI ( seguimiento: elemento de metadatos ) y un valor. El nombre se utilizará en la interfaz de búsqueda de Runtime Manager.
Da un valor que puede ser cualquier expresión de Mule.
Ejemplo
La siguiente tabla consta de la lista de KPI con nombre y valor:
Nombre | Expresión / Valor |
---|---|
Lista de estudiantes No | # [carga útil ['RollNo']] |
Nombre del estudiante | # [payload ['Nombre']] |
Evaluación dinámica
Este componente principal se utiliza para seleccionar dinámicamente un script en la aplicación Mule. También podemos usar un script hardcore a través del componente Transform Message, pero usar el componente Dynamic Evaluate es una mejor manera. Este componente central funciona de la siguiente manera:
- En primer lugar, evalúa una expresión que debería dar como resultado otro script.
- Luego evalúa ese script para obtener el resultado final.
De esta forma, nos permite seleccionar dinámicamente el script en lugar de codificarlo.
Ejemplo
A continuación, se muestra un ejemplo de cómo seleccionar un script de la base de datos a través de un parámetro de consulta Id y almacenar ese script en una variable llamada MyScript . Ahora, el componente de evaluación dinámica accederá a la variable para invocar los scripts para que pueda agregar una variable de nombre desdeUName parámetro de consulta.
La configuración XML del flujo se da a continuación:
<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>
El script puede usar variables de contexto como mensaje, carga útil, variables o atributos. Sin embargo, si desea agregar una variable de contexto personalizada, debe proporcionar un conjunto de pares clave-valor.
Configuración de Dynamic Evaluate
La siguiente tabla proporciona una forma de configurar el componente Dynamic Evaluate:
Campo | Valor | Descripción | Ejemplo |
---|---|---|---|
Expresión | Expresión de DataWeave | Especifica la expresión que se evaluará en el script final. | expresión = "# [vars.generateOrderScript]" |
Parámetros | Expresión de DataWeave | Especifica pares clave-valor. | # [{joiner: 'y', id: payload.user.id}] |
Componente de referencia de flujo
Si desea enrutar el evento Mule a otro flujo o subflujo y regresar dentro de la misma aplicación Mule, entonces el componente de referencia de flujo es la opción correcta.
Caracteristicas
Las siguientes son las características de este componente central:
Este componente central nos permite tratar todo el flujo referenciado como un solo componente en el flujo actual.
Divide la aplicación Mule en unidades discretas y reutilizables. Por ejemplo, un flujo enumera archivos de forma regular. Podría hacer referencia a otro flujo que procesa la salida de la operación de lista.
De esta manera, en lugar de agregar todos los pasos de procesamiento, podemos agregar referencias de flujo que apuntan al flujo de procesamiento. La siguiente captura de pantalla muestra que el componente principal de referencia de flujo apunta hacia un subflujo denominadoProcessFiles.
Trabajando
El funcionamiento del componente Flow Ref se puede entender con la ayuda del siguiente diagrama:
El diagrama muestra el orden de procesamiento en la aplicación Mule cuando un flujo hace referencia a otro flujo en la misma aplicación. Cuando se activa el flujo de trabajo principal en la aplicación Mule, el evento Mule viaja a través y ejecuta el flujo hasta que el evento Mule alcanza la referencia de flujo.
Después de llegar a Flow Reference, el evento Mule ejecuta el flujo referenciado de principio a fin. Una vez que el evento Mule termina de ejecutar el Ref Flow, vuelve al flujo principal.
Ejemplo
Para un mejor entendimiento, let us use this component in Anypoint Studio. En este ejemplo, estamos tomando un oyente HTTP para OBTENER un mensaje, como hicimos en el capítulo anterior. Entonces, podemos arrastrar y soltar el componente y configurarlo. Pero para este ejemplo, necesitamos agregar un componente de subflujo y establecer el componente de carga útil debajo de él, como se muestra a continuación:
A continuación, necesitamos configurar Set Payload, haciendo doble clic en él. Aquí le damos el valor, "Subflujo ejecutado" como se muestra a continuación:
Una vez que configuramos con éxito el componente de subflujo, necesitamos que el Componente de referencia de flujo se establezca después de Establecer carga útil del flujo principal, que podemos arrastrar y soltar desde la Paleta de mule como se muestra a continuación:
A continuación, mientras configuramos el Componente de referencia de flujo, debemos elegir Nombre de flujo en la pestaña Genérico como se muestra a continuación:
Ahora, guarde y ejecute esta aplicación. Para probar esto, vaya a POSTMAN y escribahttp:/localhost:8181/FirstAPP en la barra de URL, y obtendrá el mensaje, Subflujo ejecutado.
Componente del registrador
El componente central llamado logger nos ayuda a monitorear y depurar nuestra aplicación Mule al registrar información importante como mensajes de error, notificaciones de estado, cargas útiles, etc. En AnyPoint Studio, aparecen en el Console.
Ventajas
A continuación se presentan algunas ventajas del componente Logger:
- Podemos agregar este componente principal en cualquier parte del flujo de trabajo.
- Podemos configurarlo para registrar una cadena especificada por nosotros.
- Podemos configurarlo a la salida de una expresión DataWeave escrita por nosotros.
- También podemos configurarlo para cualquier combinación de cadenas y expresiones.
Ejemplo
El siguiente ejemplo muestra el mensaje "Hola mundo" en la carga de configuración en un navegador y también registra el mensaje.
A continuación se muestra la configuración XML del flujo en el ejemplo anterior:
<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>
Componente de mensaje de transferencia
Transform Message Component, también llamado componente Transfer, nos permite convertir los datos de entrada a un nuevo formato de salida.
Métodos para construir la transformación
Podemos construir nuestra transformación con la ayuda de los siguientes dos métodos:
Drag-and-Drop Editor (Graphical View)- Este es el primer y más utilizado método para construir nuestra transformación. En este método, podemos usar el mapeador visual de este componente para arrastrar y soltar los elementos de la estructura de datos entrantes. Por ejemplo, en el siguiente diagrama, dos vistas de árbol muestran las estructuras de metadatos esperadas de la entrada y la salida. Las líneas que conectan la entrada al campo de salida representan el mapeo entre dos vistas de árbol.
Script View- El mapeo visual de Transformation también se puede representar con la ayuda de DataWeave, un lenguaje para el código Mule. Podemos hacer codificación para algunas transformaciones avanzadas como agregación, normalización, agrupación, unión, partición, pivotación y filtrado. El ejemplo se da a continuación:
Este componente central básicamente acepta metadatos de entrada y salida para una variable, un atributo o una carga útil de mensaje. Podemos proporcionar recursos específicos de formato para lo siguiente:
- CSV
- Schema
- Esquema de archivo plano
- JSON
- Clase de objeto
- Tipo simple
- Esquema XML
- Nombre y tipo de columna de Excel
- Nombre y tipo de columna de ancho fijo