MuleSoft - Processeur de messages et composants de script

Les modules de script permettent aux utilisateurs d'utiliser le langage de script dans Mule. En termes simples, le module de script peut échanger une logique personnalisée écrite en langage de script. Les scripts peuvent être utilisés comme implémentations ou transformateurs. Ils peuvent être utilisés pour l'évaluation d'expression, c'est-à-dire pour contrôler l'acheminement des messages.

Mule a les langages de script pris en charge suivants -

  • Groovy
  • Python
  • JavaScript
  • Ruby

Comment installer des modules de script?

En fait, Anypoint Studio est livré avec les modules de script. Si vous ne trouvez pas le module dans Mule Palette, il peut être ajouté en utilisant+Add Module. Après l'ajout, nous pouvons utiliser les opérations du module de script dans notre application Mule.

Exemple de mise en œuvre

Comme indiqué, nous devons faire glisser et déposer le module dans le canevas pour créer un espace de travail et l'utiliser dans notre application. Voici un exemple de celui-ci -

Nous savons déjà comment configurer le composant HTTP Listener; par conséquent, nous allons discuter de la configuration des modules de script. Nous devons suivre les étapes écrites ci-dessous pour configurer le module de script -

Step 1

Recherchez le module de script dans Mule Palette et faites glisser le EXECUTE fonctionnement du module de script dans votre flux comme indiqué ci-dessus.

Step 2

Maintenant, ouvrez l'onglet Exécuter la configuration en double-cliquant dessus.

Step 3

Sous le General onglet, nous devons fournir le code dans le Code text window comme indiqué ci-dessous -

Step 4

Enfin, nous devons choisir le Enginedu composant d'exécution. La liste des moteurs est comme ci-dessous -

  • Groovy
  • Nashorn(javaScript)
  • jython(Python)
  • jRuby(Ruby)

Le XML de l'exemple d'exécution ci-dessus dans l'éditeur XML de configuration est le suivant -

<scripting:execute engine="jython" doc:name = "Script">
   <scripting:code>
      def factorial(n):
         if n == 0: return 1
      return n * factorial(n-1)
      result = factorial(10)
   </scripting:code>
</scripting:execute>

Sources de message

Mule 4 a un modèle simplifié que le message Mule 3, ce qui facilite le travail avec les données de manière cohérente entre les connecteurs sans écraser les informations. Dans le modèle de message Mule 4, chaque événement Mule se compose de deux choses:a message and variables associated with it.

Un message Mule a une charge utile et ses attributs, où l'attribut est principalement des métadonnées telles que la taille du fichier.

Et une variable contient les informations utilisateur arbitraires telles que le résultat de l'opération, les valeurs auxiliaires, etc.

Entrant

Les propriétés entrantes dans Mule 3 deviennent maintenant Attributs dans Mule 4. Comme nous le savons, les propriétés entrantes stockent des informations supplémentaires sur la charge utile obtenue via une source de message, mais cela est maintenant, dans Mule 4, fait à l'aide d'attributs. Les attributs présentent les avantages suivants -

  • À l'aide d'attributs, nous pouvons facilement voir quelles données sont disponibles, car les attributs sont fortement typés.

  • Nous pouvons facilement accéder aux informations contenues dans les attributs.

Voici l'exemple d'un message typique dans Mule 4 -

Sortant

Les propriétés sortantes dans Mule 3 doivent être explicitement spécifiées par les connecteurs et les transports Mule afin d'envoyer des données supplémentaires. Mais dans Mule 4, chacun de ceux-ci peut être défini séparément, en utilisant une expression DataWeave pour chacun d'entre eux. Il ne produit aucun effet secondaire dans le flux principal.

Par exemple, ci-dessous, l'expression DataWeave effectuera une requête HTTP et générera des en-têtes et des paramètres de requête sans avoir à définir les propriétés du message. Ceci est indiqué dans le code ci-dessous -

<http:request path = "M_issue" config-ref="http" method = "GET">
   <http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
   <http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>

Processeur de messages

Une fois que Mule reçoit un message d'une source de message, le travail du processeur de message commence. Le Mule utilise un ou plusieurs processeurs de messages pour traiter le message via un flux. La tâche principale du processeur de messages est de transformer, filtrer, enrichir et traiter le message lorsqu'il passe dans le flux Mule.

Catégorisation du processeur Mule

Voici les catégories de processeur Mule, basées sur les fonctions -

  • Connectors- Ces processeurs de messages envoient et reçoivent des données. Ils connectent également des données à des sources de données externes via des protocoles standard ou des API tierces.

  • Components - Ces processeurs de messages sont de nature flexible et exécutent une logique métier implémentée dans divers langages tels que Java, JavaScript, Groovy, Python ou Ruby.

  • Filters - Ils filtrent les messages et permettent uniquement à des messages spécifiques de continuer à être traités dans un flux, en fonction de critères spécifiques.

  • Routers - Ce processeur de messages est utilisé pour contrôler le flux de messages à acheminer, reséquencer ou fractionner.

  • Scopes - hey encapsule essentiellement des extraits de code dans le but de définir un comportement à granularité fine dans un flux.

  • Transformers - Le rôle des transformateurs est de convertir le type de charge utile des messages et le format des données pour faciliter la communication entre les systèmes.

  • Business Events - Ils capturent essentiellement les données associées aux indicateurs de performance clés.

  • Exception strategies - Ces processeurs de messages gèrent les erreurs de tout type qui se produisent pendant le traitement des messages.