Différents types de flux dans Mule

Différents types de flux dans le mulet

1. introduction

Mule est un produit basé sur Java qui fournit des solutions ESB (Enterprise Service Bus). Nous pouvons développer des applications Mule en utilisantAnypoint Studio, un plugin Eclipse.

Après une brève introduction aux ESB et aux flux,we’ll talk about the different types of flows in Mule, and where we use each type.

2. Bus de service d'entreprise (ESB)

An ESB is a mediating layer connecting independent pieces of software. Ces applications utilisent souvent des protocoles différents. Par conséquent, l'ESB se chargera de la transformation et du routage des données. Cela permet la création de services découplés. Par conséquent, chaque service n'a pas à s'inquiéter de la façon dont un autre service utilisera sa sortie.

C’est le travail de l’ESB de s’assurer que les données sont au bon format. Nous pouvons trouver plus de détails sur Mule ESB dansour previous tutorial.

Components sont les éléments constitutifs d'une application Mule. Ce sont donc ces composants qui sont responsables de la transformation et du routage des données. Nous ajoutons des composants à une application Mule à partir desMule Palette, sur le côté droit d'Anypoint Studio:

image

Les composants sont ensuite regroupés enflows. Une application Mule consiste en un ou plusieurs flux.

3. Qu'est-ce qu'un Flow?

Un flux est une collection connectée de composants Mule.

Il se compose généralement d'un composant de point de terminaison entrant (d'où provient un message) et d'un composant de point de terminaison sortant. Therefore, the flow is responsible for the various processing stages in which the message may undergo.

Chaque flux peut avoir unprocessing strategy ainsi qu'unexception handling strategy associé. Un flux peut également référencer un autre flux en utilisant unflow reference component.

Il existe trois types de flux dans Mule:

  • Sous-flux - flux synchrone héritant de la stratégie de traitement et de gestion des exceptions du flux parent

  • Flux synchrones - un flux synchrone avec sa stratégie de traitement et de gestion des exceptions

  • Flux asynchrones - flux asynchrone avec sa stratégie de traitement et de gestion des exceptions

4. Sous-flux

Nous utilisons des sous-flux pour regrouper la logique commune. Subflows are processed synchronously; autrement dit, l'exécution du flux appelant s'arrête jusqu'à ce que le flux secondaire soit terminé.

Plus précisément, nous pouvons ajouter un flux secondaire à partir de la palette Mule:

image

Le sous-flux est appelé en utilisant unflow reference component:

image

De plus,subflows inherit the processing strategies and exception handling strategies of the calling flow. We peut appeler un sous-flux à partir de plusieurs flux différents. Si nous ne souhaitons pas hériter de ces stratégies, nous pourrions appeler un flux synchrone.

5. Flux synchrones

Comme un sous-flux,a synchronous flow is also processed synchronously.  Cela signifie que lorsque nous appelons un flux synchrone, il doit se terminer avant que le flux parent ne reprenne son exécution.

Nous ajoutons des flux synchrones à notre application Mule en ajoutant des flux réguliers; il n'y a pas de composant «flux synchrone». Nous ajoutons unflow component régulier:

image

Pour appeler le flux synchrone, nous utilisons à nouveau unflow reference component:

image

Contrairement à un sous-flux, il n’hérite pas des stratégies de traitement et de gestion des exceptions du flux appelant. Par conséquent, les stratégies de traitement et de gestion des exceptions du flux d'appels n'affectent pas le comportement de ce type de flux.

Pour ces raisons, ce type de flux est idéal pour le traitement transactionnel car les messages traités à l'aide de flux synchrones s'exécutent sur un seul thread.

6. Flux asynchrones

Les flux asynchrones s'exécutent en parallèle avec le flux appelant; c'est-à-direthey are processed asynchronously.

Nous ajoutons des flux asynchrones à l'application Mule de la même manière que nous ajoutons des flux synchrones. Donc, ce qui rend le flux asynchrone, c'est que nous l'appelons à partir d'une portée asynchrone. Nous pouvons le faire en enveloppant lesflow reference component dans unasync component:

image

De la même manière que les flux synchrones, ils n'héritent pas des stratégies de traitement et de gestion des exceptions du flux appelant.

De plus, les messages traités à l'aide de flux asynchrones s'exécutent sur plusieurs threads, ce qui en fait le type de flux idéal pour les tâches fastidieuses telles que l'envoi d'e-mails ou la réalisation d'opérations d'E / S.

7. Conclusion

Dans ce court tutoriel, nous avons discuté des caractéristiques des différents types de flux dans Mule.

Pour plus d'informations, visitezthe official Mule website.