MIT DATEN MEHR BEWEGEN.

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.

Tabelle 1. Konfigurationsparameter Router-Block
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:

  1. 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”

  2. 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)

router aggr
Abbildung 1. Konfiguration des Aggregator-Blocks "aggregate1"
Router VisualEditor
Abbildung 2. Konfiguration des Route-Block "Router-5"