Router
Funktionsbeschreibung und Anwendung
Mit dem Router-Block können einlaufende Nachrichten bedingungsbezogen in bestimmte Processing-Blöcke weitergeleitet werden.
Hierfür gilt:
-
Jede Bedingung muss einen booleschen Zustand zurückgeben.
-
Jede Bedingung, die keinen booleschen Zustand zurückgibt, ist automatisch "false".
-
Sind alle Bedingungen einer Route erfüllt, wird die Nachricht an alle mit dem Block verbundenen Nachfolgerblöcke weitergeleitet.
-
Es werden immer alle konfigurierten Routes überprüft.
-
Wenn keine Route erfüllt wird, wird die Nachricht das defaultOutputTopic des stream processor weitergeleitet.
Folgende Ausdrücke sind in den Bedingungen zulässig:
-
Regular Expression
-
Syntax: RegEx(<value>,'<pattern>')
-
Hochkomma (''): Für Value kann ein statischer Wert eingetragen werden
-
Ohne Hochkomma (''): Value aus Parametern (Header & Body) wird geholt.
-
-
alle Ausdrücke, die auch im Expression Evaluator Block angewendet werden können
Der Zugriff auf Nachrichteninhalte, wie die Eigenschaften des Headers und des Bodys, kann über die Bedingungen umgesetzt werden.
Die Tabelle conditions
wurde durch den Condition-Builder ersetzt.
Der Condition Builder ermöglicht die Konfiguration über den Visual Editor. Es können folgende Werte konfiguriert werden:
-
Source (header, body, context)
-
Property
-
Operator
-
Comparison value
Im Text Editor werden die konfigurierten conditions
angezeigt.
In der folgenden Tabelle werden die Konfigurationsparameter erläutert. Die Route-Blöcke enthalten die Routes mit ihren Bedingungen (conditions). Werden mehrere Bedingungen angegeben, so werden diese per Und-Logik verbunden. Das Ergebnis einer Bedingung muss immer einen boolschen Wert ergeben.
Parameter | Beschreibung |
---|---|
Name |
Name der Blockinstanz |
Route Name |
Name des Route-Blocks. Wurden mehrere Route-Blöcke angelegt, erscheinen diese als wählbare Reiter unter der Eingabezeile. |
Conditions |
Sind alle Bedingungen einer Route erfüllt, wird die Nachricht an alle mit dem Block verbundenen Nachfolgerblöcke weitergeleitet. |
Beispielkonfiguration
Die Schrittweise Konfiguration des Stream Processors mit Block Routing wird am folgenden Beispiel erläutert:
-
Aggregate-Blöcke 1 bis 3 mit den gleichen Parametern anlegen (Abbildung 1)
-
Samples mit Size „1” und HoppingEach „1“
-
Behavior: ignore default and collect für „b”
-
-
Neuen Processing Block vom Type Router mit Name "Routing" anlegen (Abbildung 2)
-
Routes anlegen:
-
Route Name: b<10000
-
Conditions:
-
(header_scope == 'a$' || body_b < 10000)
-
-
-