MuleSoft - Kernkomponenten und Konfiguration
Eine der wichtigsten Fähigkeiten von Mule besteht darin, dass es Routing, Transformation und Verarbeitung mit den Komponenten durchführen kann, weshalb die Konfigurationsdatei der Mule-Anwendung, die verschiedene Elemente kombiniert, sehr groß ist.
Im Folgenden sind die von Mule bereitgestellten Arten von Konfigurationsmustern aufgeführt:
- Einfaches Servicemuster
- Bridge
- Validator
- HTTP-Proxy
- WS-Proxy
Komponente konfigurieren
In Anypoint Studio können Sie die folgenden Schritte ausführen, um eine Komponente zu konfigurieren:
Step 1
Wir müssen die Komponente ziehen, die wir in unserer Mule-Anwendung verwenden möchten. Zum Beispiel verwenden wir hier die HTTP-Listener-Komponente wie folgt:
Step 2
Doppelklicken Sie anschließend auf die Komponente, um das Konfigurationsfenster aufzurufen. Für den HTTP-Listener wird es unten gezeigt -
Step 3
Wir können die Komponente gemäß den Anforderungen unseres Projekts konfigurieren. Nehmen wir zum Beispiel an, wir haben für die HTTP-Listener-Komponente -
Kernkomponenten sind einer der wichtigen Bausteine des Arbeitsablaufs in der Mule-App. Die Logik zum Verarbeiten eines Mule-Ereignisses wird von diesen Kernkomponenten bereitgestellt. Um in Anypoint Studio auf diese Kernkomponenten zuzugreifen, können Sie wie unten gezeigt auf den Kern der Maultierpalette klicken.
Es folgen verschiedene core components and their working in Mule 4 - -
Benutzerdefinierte Geschäftsereignisse
Diese Kernkomponente wird für die Erfassung von Informationen zu Flows sowie von Nachrichtenprozessoren verwendet, die die Geschäftstransaktionen in der Mule-App verarbeiten. Mit anderen Worten, wir können die benutzerdefinierte Geschäftsereigniskomponente verwenden, um Folgendes in unseren Arbeitsablauf aufzunehmen:
- Metadata
- Key Performance Indicators (KPIs)
Wie füge ich KPIs hinzu?
Im Folgenden finden Sie die Schritte zum Hinzufügen von KPIs zu unserem Flow in der Mule-App:
Step 1 - Folgen Sie Mule Palette → Core → Components → Custom Business Event, um einem Arbeitsablauf in Ihrer Mule-App eine benutzerdefinierte Geschäftsereigniskomponente hinzuzufügen.
Step 2 - Klicken Sie auf die Komponente, um sie zu öffnen.
Step 3 - Jetzt müssen wir Werte für Anzeigename und Ereignisname angeben.
Step 4 - Um Informationen aus der Nachrichtennutzlast zu erfassen, fügen Sie KPIs wie folgt hinzu: -
Geben Sie einen Namen (Schlüssel) für den KPI ( Tracking: Metadatenelement ) und einen Wert an. Der Name wird in der Suchoberfläche von Runtime Manager verwendet.
Geben Sie einen Wert an, der ein beliebiger Mule-Ausdruck sein kann.
Beispiel
Die folgende Tabelle enthält die Liste der KPIs mit Name und Wert -
Name | Ausdruck / Wert |
---|---|
Student RollNo | # [Nutzlast ['RollNo']] |
Name des Studenten | # [Nutzlast ['Name']] |
Dynamische Auswertung
Diese Kernkomponente wird zum dynamischen Auswählen eines Skripts in der Mule-App verwendet. Wir können auch Hardcore-Skripte über die Transform Message-Komponente verwenden, aber die Verwendung der Dynamic Evaluate-Komponente ist ein besserer Weg. Diese Kernkomponente funktioniert wie folgt:
- Zunächst wird ein Ausdruck ausgewertet, der zu einem anderen Skript führen soll.
- Dann wertet es dieses Skript für das Endergebnis aus.
Auf diese Weise können wir das Skript dynamisch auswählen, anstatt es fest zu codieren.
Beispiel
Im Folgenden finden Sie ein Beispiel für die Auswahl eines Skripts aus der Datenbank über einen ID-Abfrageparameter und das Speichern dieses Skripts in einer Variablen namens MyScript . Jetzt greift die Dynamic-Evaluate-Komponente auf die Variable zu, um die Skripte aufzurufen, damit sie eine Namensvariable hinzufügen kannUName Abfrageparameter.
Die XML-Konfiguration des Flusses ist unten angegeben -
<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>
Das Skript kann Kontextvariablen wie Nachricht, Nutzlast, Variablen oder Attribute verwenden. Wenn Sie jedoch eine benutzerdefinierte Kontextvariable hinzufügen möchten, müssen Sie eine Reihe von Schlüssel-Wert-Paaren bereitstellen.
Dynamische Auswertung konfigurieren
Die folgende Tabelle bietet eine Möglichkeit zum Konfigurieren der Dynamic Evaluate-Komponente -
Feld | Wert | Beschreibung | Beispiel |
---|---|---|---|
Ausdruck | DataWeave-Ausdruck | Es gibt den Ausdruck an, der im endgültigen Skript ausgewertet werden soll. | expression = "# [vars.generateOrderScript]" |
Parameter | DataWeave-Ausdruck | Es gibt Schlüssel-Wert-Paare an. | # [{joiner: 'und', id: payload.user.id}] |
Durchflussreferenzkomponente
Wenn Sie das Mule-Ereignis an einen anderen Flow oder Sub-Flow und zurück innerhalb derselben Mule-App weiterleiten möchten, ist die Flow-Referenzkomponente die richtige Option.
Eigenschaften
Im Folgenden sind die Eigenschaften dieser Kernkomponente aufgeführt:
Diese Kernkomponente ermöglicht es uns, den gesamten referenzierten Fluss wie eine einzelne Komponente im aktuellen Fluss zu behandeln.
Es unterteilt die Mule-Anwendung in diskrete und wiederverwendbare Einheiten. Ein Flow listet beispielsweise regelmäßig Dateien auf. Es kann auf einen anderen Fluss verweisen, der die Ausgabe der Listenoperation verarbeitet.
Auf diese Weise können wir nicht die gesamten Verarbeitungsschritte anhängen, sondern Flow-Referenzen anhängen, die auf den Verarbeitungsablauf verweisen. Der folgende Screenshot zeigt, dass die Flow Reference Core-Komponente auf einen Unterfluss mit dem Namen zeigtProcessFiles.
Arbeiten
Die Funktionsweise der Flow Ref-Komponente kann anhand des folgenden Diagramms verstanden werden:
Das Diagramm zeigt die Verarbeitungsreihenfolge in der Mule-Anwendung, wenn ein Flow auf einen anderen Flow in derselben Anwendung verweist. Wenn der Hauptarbeitsablauf in der Mule-Anwendung ausgelöst wird, durchläuft das Mule-Ereignis den gesamten Ablauf und führt den Ablauf aus, bis das Mule-Ereignis die Flussreferenz erreicht.
Nach Erreichen der Flussreferenz führt das Mule-Ereignis den referenzierten Fluss von Anfang bis Ende aus. Sobald das Mule-Ereignis die Ausführung des Ref-Flusses beendet hat, kehrt es zum Hauptfluss zurück.
Beispiel
Zum besseren Verständnis let us use this component in Anypoint Studio. In diesem Beispiel verwenden wir den HTTP-Listener, um eine Nachricht zu erhalten, wie im vorherigen Kapitel. So können wir die Komponente ziehen und ablegen und konfigurieren. In diesem Beispiel müssen wir jedoch eine Subflow-Komponente hinzufügen und die Payload-Komponente darunter festlegen, wie unten gezeigt.
Als nächstes müssen wir konfigurieren Set Payloaddurch Doppelklick darauf. Hier geben wir den Wert "Subflow ausgeführt" an, wie unten gezeigt -
Nach erfolgreicher Konfiguration der Unterflusskomponente muss die Flussreferenzkomponente nach "Nutzlast des Hauptflusses festlegen" festgelegt werden, die wir wie unten gezeigt aus der Maultierpalette ziehen und ablegen können.
Als Nächstes müssen wir beim Konfigurieren der Flow-Referenzkomponente auf der Registerkarte "Allgemein" den Flow-Namen auswählen (siehe unten).
Speichern Sie nun diese Anwendung und führen Sie sie aus. Um dies zu testen, gehen Sie zu POSTMAN und geben Sie einhttp:/localhost:8181/FirstAPP In der URL-Leiste wird die Meldung Subflow ausgeführt.
Logger-Komponente
Die Kernkomponente namens Logger hilft uns beim Überwachen und Debuggen unserer Mule-Anwendung, indem wichtige Informationen wie Fehlermeldungen, Statusbenachrichtigungen, Nutzdaten usw. protokolliert werden. In AnyPoint Studio werden sie in der angezeigt Console.
Vorteile
Im Folgenden sind einige Vorteile der Logger-Komponente aufgeführt:
- Wir können diese Kernkomponente überall im Arbeitsablauf hinzufügen.
- Wir können es so konfigurieren, dass eine von uns angegebene Zeichenfolge protokolliert wird.
- Wir können es für die Ausgabe eines von uns geschriebenen DataWeave-Ausdrucks konfigurieren.
- Wir können es auch für eine beliebige Kombination von Zeichenfolgen und Ausdrücken konfigurieren.
Beispiel
Das folgende Beispiel zeigt die Meldung "Hello World" in "Set Payload" in einem Browser an und protokolliert die Meldung ebenfalls.
Im Folgenden finden Sie die XML-Konfiguration des Ablaufs im obigen Beispiel:
<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>
Nachrichtenkomponente übertragen
Mit der Nachrichtenkomponente transformieren, auch Übertragungskomponente genannt, können wir die Eingabedaten in ein neues Ausgabeformat konvertieren.
Methoden zum Erstellen von Transformation
Wir können unsere Transformation mit Hilfe der folgenden zwei Methoden aufbauen:
Drag-and-Drop Editor (Graphical View)- Dies ist die erste und am häufigsten verwendete Methode, um unsere Transformation aufzubauen. Bei dieser Methode können wir den Visual Mapper dieser Komponente verwenden, um die Elemente der eingehenden Datenstruktur per Drag & Drop zu verschieben. Im folgenden Diagramm zeigen beispielsweise zwei Baumansichten die erwarteten Metadatenstrukturen der Eingabe und Ausgabe. Linien, die die Eingabe mit dem Ausgabefeld verbinden, repräsentieren die Zuordnung zwischen zwei Baumansichten.
Script View- Die visuelle Zuordnung von Transformation kann auch mit Hilfe von DataWeave, einer Sprache für Mule-Code, dargestellt werden. Wir können einige erweiterte Transformationen wie Aggregation, Normalisierung, Gruppierung, Verknüpfung, Partitionierung, Schwenken und Filtern codieren. Das Beispiel ist unten angegeben -
Diese Kernkomponente akzeptiert grundsätzlich Eingabe- und Ausgabemetadaten für eine Variable, ein Attribut oder eine Nachrichtennutzlast. Wir können formatspezifische Ressourcen für Folgendes bereitstellen:
- CSV
- Schema
- Flatfile-Schema
- JSON
- Objektklasse
- Einfacher Typ
- XML-Schema
- Name und Typ der Excel-Spalte
- Name und Typ der Spalte mit fester Breite