Verschiedene Arten von Flows in Mule

Verschiedene Arten von Flüssen in Mule

1. Einführung

Mule ist ein Java-basiertes Produkt, das ESB-Lösungen (Enterprise Service Bus) bereitstellt. Wir können Mule-Anwendungen mitAnypoint Studio, einem Eclipse-Plugin, entwickeln.

Nach einer kurzen Einführung in ESBs und Flows werdenwe’ll talk about the different types of flows in Mule, and where we use each type.

2. Enterprise Service Bus (ESB)

An ESB is a mediating layer connecting independent pieces of software. Diese Apps verwenden häufig unterschiedliche Protokolle. Folglich kümmert sich der ESB um die Transformation und Weiterleitung der Daten. Dies ermöglicht die Erstellung entkoppelter Dienste. Daher muss sich jeder Dienst nicht darum kümmern, wie ein anderer Dienst seine Ausgabe verbraucht.

Es ist Aufgabe des ESB, sicherzustellen, dass die Daten im richtigen Format vorliegen. Weitere Details zu Mule ESB finden Sie inour previous tutorial.

Components sind die Bausteine ​​einer Mule-Anwendung. Daher sind diese Komponenten für die Transformation und Weiterleitung von Daten verantwortlich. Wir fügen einer Mule-Anwendung Komponenten ausMule Palette auf der rechten Seite von Anypoint Studio hinzu:

image

Die Komponenten werden anschließend inflows gruppiert. Eine Mule-Anwendung besteht aus einem oder mehreren Flows.

3. Was ist ein Fluss?

Ein Flow ist eine zusammenhängende Sammlung von Mule-Komponenten.

Es besteht normalerweise aus einer eingehenden Endpunktkomponente (von der eine Nachricht stammt) und einer ausgehenden Endpunktkomponente. Therefore, the flow is responsible for the various processing stages in which the message may undergo.

Jedem Fluss können sowohlprocessing strategy als auchexception handling strategy zugeordnet sein. Ein Fluss kann auch einen anderen Fluss unter Verwendung vonflow reference component referenzieren.

Es gibt drei verschiedene Arten von Flüssen in Mule:

  • Unterabläufe - ein synchroner Ablauf, der die Verarbeitungs- und Ausnahmebehandlungsstrategie des übergeordneten Ablaufs übernimmt

  • Synchroner Ablauf - Ein synchroner Ablauf mit seiner Verarbeitungs- und Ausnahmebehandlungsstrategie

  • Asynchrone Flows - Ein asynchroner Flow mit seiner Verarbeitungs- und Ausnahmebehandlungsstrategie

4. Subflows

Wir verwenden Unterflüsse, um gemeinsame Logik zu gruppieren. Subflows are processed synchronously; Das heißt, die Ausführung des aufrufenden Ablaufs wird angehalten, bis der Unterablauf abgeschlossen ist.

Insbesondere können wir einen Subflow aus der Mule-Palette hinzufügen:

image

Der Subflow wird mitflow reference component aufgerufen:

image

Zusätzlich kannsubflows inherit the processing strategies and exception handling strategies of the calling flow. Wir einen Subflow aus mehreren verschiedenen Flows aufrufen. Sollten wir diese Strategien nicht erben wollen, könnten wir einen synchronen Fluss nennen.

5. Synchrone Flüsse

Wie ein Unterfluss bedeuteta synchronous flow is also processed synchronously. Dies bedeutet, dass ein synchroner Fluss abgeschlossen werden muss, bevor der übergeordnete Fluss seine Ausführung wieder aufnimmt.

Wir fügen unserer Mule-Anwendung synchrone Flüsse hinzu, indem wir regelmäßige Flüsse hinzufügen. Es gibt keine „Synchronfluss“ -Komponente. Wir fügen reguläreflow component hinzu:

image

Um den synchronen Fluss aufzurufen, verwenden wir wieder einflow reference component:

image

Im Gegensatz zu einem Subflow erbt er nicht die Verarbeitungs- und Ausnahmebehandlungsstrategien des aufrufenden Flows. Folglich haben die Verarbeitungs- und Ausnahmebehandlungsstrategien des aufrufenden Flusses keine Auswirkungen auf das Verhalten dieses Flusstyps.

Aus diesen Gründen ist dieser Flusstyp ideal für die Transaktionsverarbeitung, da Nachrichten, die unter Verwendung synchroner Flüsse verarbeitet werden, auf einem einzelnen Thread ausgeführt werden.

6. Asynchrone Flüsse

Asynchrone Flows werden parallel zum aufrufenden Flow ausgeführt. they are processed asynchronously.

Wir fügen der Mule-Anwendung asynchrone Flows hinzu, genauso wie wir synchrone Flows hinzufügen. Was den Fluss asynchron macht, ist, dass wir ihn innerhalb eines asynchronen Bereichs aufrufen. Wir können dies tun, indem wirflow reference component inasync component einschließen:

image

Ähnlich wie bei synchronen Flows erben sie nicht die Verarbeitungs- und Ausnahmebehandlungsstrategien des aufrufenden Flows.

Darüber hinaus werden Nachrichten, die mit asynchronen Flüssen verarbeitet werden, auf mehreren Threads ausgeführt. Dadurch eignet sich dieser Flusstyp ideal für zeitaufwändige Aufgaben wie das Versenden von E-Mails oder das Ausführen von E / A-Vorgängen.

7. Fazit

In diesem kurzen Tutorial haben wir die Eigenschaften der verschiedenen Flusstypen in Mule besprochen.

Weitere Informationen finden Sie unterthe official Mule website.