MuleSoft - Nachrichtenprozessor- und Skriptkomponenten
Die Skriptmodule erleichtern Benutzern die Verwendung der Skriptsprache in Mule. In einfachen Worten kann das Skriptmodul benutzerdefinierte Logik austauschen, die in der Skriptsprache geschrieben ist. Skripte können als Implementierungen oder Transformatoren verwendet werden. Sie können zur Auswertung von Ausdrücken verwendet werden, dh zur Steuerung des Nachrichtenroutings.
Mule unterstützt die folgenden unterstützten Skriptsprachen:
- Groovy
- Python
- JavaScript
- Ruby
Wie installiere ich Scripting-Module?
Tatsächlich wird Anypoint Studio mit den Skriptmodulen geliefert. Wenn Sie das Modul nicht in der Mule-Palette finden, können Sie es mithilfe von hinzufügen+Add Module. Nach dem Hinzufügen können wir die Operationen des Skriptmoduls in unserer Mule-Anwendung verwenden.
Implementierungsbeispiel
Wie bereits erwähnt, müssen wir das Modul zum Erstellen eines Arbeitsbereichs per Drag & Drop in den Canvas-Bereich ziehen und in unserer Anwendung verwenden. Das Folgende ist ein Beispiel dafür -
Wir wissen bereits, wie die HTTP-Listener-Komponente konfiguriert wird. Daher werden wir uns mit der Konfiguration der Scripting-Module befassen. Wir müssen die folgenden Schritte ausführen, um das Skriptmodul zu konfigurieren -
Step 1
Suchen Sie in der Mule-Palette nach dem Scripting-Modul und ziehen Sie das EXECUTE Bedienung des Skriptmoduls in Ihrem Flow wie oben gezeigt.
Step 2
Öffnen Sie nun die Registerkarte Konfiguration ausführen, indem Sie darauf doppelklicken.
Step 3
Unter dem General Registerkarte müssen wir den Code in der Code text window wie unten gezeigt -
Step 4
Endlich müssen wir die wählen Enginevon der Ausführungskomponente. Die Liste der Motoren ist wie folgt -
- Groovy
- Nashorn(javaScript)
- jython(Python)
- jRuby(Ruby)
Das XML des obigen Ausführungsbeispiels im Konfigurations-XML-Editor lautet wie folgt:
<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>
Nachrichtenquellen
Mule 4 verfügt über ein vereinfachtes Modell als Mule 3-Nachrichten, das es einfacher macht, mit Daten über Konnektoren hinweg konsistent zu arbeiten, ohne Informationen zu überschreiben. Im Mule 4-Nachrichtenmodell besteht jedes Mule-Ereignis aus zwei Dingen:a message and variables associated with it.
Eine Mule-Nachricht hat Nutzdaten und ihre Attribute, wobei das Attribut hauptsächlich aus Metadaten wie der Dateigröße besteht.
Und eine Variable enthält die beliebigen Benutzerinformationen wie Operationsergebnis, Hilfswerte usw.
Eingehende
Die eingehenden Eigenschaften in Mule 3 werden jetzt zu Attributen in Mule 4. Wie wir wissen, speichern eingehende Eigenschaften zusätzliche Informationen über die Nutzdaten, die über eine Nachrichtenquelle abgerufen werden. Dies erfolgt jetzt in Mule 4 mithilfe von Attributen. Attribute haben folgende Vorteile:
Mithilfe von Attributen können wir leicht erkennen, welche Daten verfügbar sind, da Attribute stark typisiert sind.
Wir können leicht auf Informationen zugreifen, die in Attributen enthalten sind.
Es folgt das Beispiel einer typischen Nachricht in Mule 4 -
Ausgehend
Die ausgehenden Eigenschaften in Mule 3 müssen von Mule-Konnektoren und -Transporten explizit angegeben werden, um zusätzliche Daten zu senden. In Mule 4 kann jeder von ihnen separat festgelegt werden, wobei für jeden ein DataWeave-Ausdruck verwendet wird. Es entsteht keine Nebenwirkung im Hauptstrom.
Im Folgenden führt der DataWeave-Ausdruck beispielsweise eine HTTP-Anforderung aus und generiert Header und Abfrageparameter, ohne dass Nachrichteneigenschaften festgelegt werden müssen. Dies wird im folgenden Code gezeigt -
<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>
Nachrichtenprozessor
Sobald Mule eine Nachricht von einer Nachrichtenquelle empfängt, beginnt die Arbeit des Nachrichtenprozessors. Das Maultier verwendet einen oder mehrere Nachrichtenprozessoren, um die Nachricht durch einen Fluss zu verarbeiten. Die Hauptaufgabe des Nachrichtenprozessors besteht darin, die Nachricht beim Durchlaufen des Mule-Flusses zu transformieren, zu filtern, anzureichern und zu verarbeiten.
Kategorisierung des Maultierprozessors
Es folgen die Kategorien von Mule Processor, basierend auf Funktionen -
Connectors- Diese Nachrichtenprozessoren senden und empfangen Daten. Sie verbinden Daten auch über Standardprotokolle oder APIs von Drittanbietern mit externen Datenquellen.
Components - Diese Nachrichtenprozessoren sind flexibel und führen Geschäftslogik aus, die in verschiedenen Sprachen wie Java, JavaScript, Groovy, Python oder Ruby implementiert ist.
Filters - Sie filtern die Nachrichten und ermöglichen, dass nur bestimmte Nachrichten basierend auf bestimmten Kriterien weiterhin in einem Flow verarbeitet werden.
Routers - Dieser Nachrichtenprozessor wird verwendet, um den Nachrichtenfluss zum Weiterleiten, erneuten Sequenzieren oder Teilen zu steuern.
Scopes - Sie verpacken im Grunde genommen Codefragmente, um ein feinkörniges Verhalten innerhalb eines Flusses zu definieren.
Transformers - Die Rolle von Transformatoren besteht darin, den Nachrichtennutzlasttyp und das Datenformat zu konvertieren, um die Kommunikation zwischen Systemen zu erleichtern.
Business Events - Sie erfassen im Wesentlichen Daten, die mit Leistungsindikatoren verknüpft sind.
Exception strategies - Diese Nachrichtenprozessoren behandeln Fehler jeglicher Art, die während der Nachrichtenverarbeitung auftreten.