Zum Hauptinhalt springen

Apache Kafka-Trigger

Reagiert auf Veränderung der projektierten Topics. Gibt den Payload sowie den Key zurück. In der Eigenschaftsmaske können Sie die Anbindungs-Parameter für Ihre Apache Kafka-Abfrage festlegen:

Apache Kafka-Trigger

Folgende Eigenschaften können konfiguriert werden:

BrokerWählen Sie eine konfigurierte Brokeranbindung aus dem Drop-down-Menü aus.
TopicAngabe des Topic von dem gelesen werden soll.
Auf Transfer wartenAuswählen, ob und in welcher Form auf den Transfer gewartet werden soll.
Trigger bei DienststartAktivieren Sie diese Option, wenn bei Start des OPC Router getriggert werden soll

Zusammenspiel mit dem Broker

Wie diese Darstellung zu lesen ist, erklärt der Abschnitt Sequenzdiagramme.

Der Apache Kafka-Trigger ist ein normaler Mitglied-Consumer einer Kafka-Consumer-Gruppe; das automatische Bestätigen der Leseposition ist abgeschaltet, der OPC Router bestätigt den Offset also selbst. Wichtig für das Verständnis der Option „Auf Transfer warten“: Es wartet kein Thread auf den Flow - der Trigger startet den Transfer und kehrt sofort zurück. Die Option verschiebt ausschließlich den Zeitpunkt, zu dem der Offset bestätigt (Commit) und der Consumer fortgesetzt wird. Nach jeder gelesenen Nachricht pausiert der Consumer; steht die Option auf „ein“, bleibt er bis zum Vorliegen des Transferergebnisses pausiert, sodass die Nachrichten eines Topics streng nacheinander verarbeitet werden.

Der Schalter ist dreiwertig. Standard übernimmt die Einstellung der Anbindung, „Aktiv“ und „Inaktiv“ überstimmen sie für diesen einen Trigger. Die beiden Diagramme zeigen das Ergebnis der Auflösung, nicht die Stellung des Schalters.

Warte auf Transfer: aus

Apache Kafka-Trigger: Offset-Commit und Seek zurück, Warte auf Transfer: aus

Mit ausgeschalteter Option bestätigt der Trigger den Offset unmittelbar nach dem erfolgreichen Transferstart und setzt den Consumer sofort fort. Es wartet dabei kein Thread auf den Flow: der Trigger startet den Transfer und arbeitet sofort weiter. Die nächste Nachricht kann also bereits verarbeitet werden, während der vorige Flow noch läuft; das später eintreffende Transferergebnis wird nicht mehr ausgewertet und bleibt folgenlos. Nur ein abgelehnter Transferstart führt zum Seek auf den vorherigen Offset; die Nachricht wird dann erneut zugestellt.

Warte auf Transfer: ein

Apache Kafka-Trigger: Offset-Commit und Seek zurück, Warte auf Transfer: ein

Mit eingeschalteter Option unterbleiben Commit und Fortsetzen zunächst; der Consumer bleibt pausiert, bis der Flow sein Ergebnis meldet. Ein erfolgreiches Ergebnis führt zu Offset-Commit und Fortsetzen, ein Abbruch oder Fehler zu einem Seek auf den vorherigen Offset - dieselbe Nachricht wird dann vom Broker erneut zugestellt, und zwar unbegrenzt oft, solange der Flow scheitert. Dieses erneute Zustellen ist Kafka-Protokollverhalten und keine Wiederholung des OPC Routers. Ein abgelehnter Transferstart wird wie im ersten Diagramm durch Seek zurückgenommen.

Der Unterschied liegt allein in der Position von Offset-Commit und Fortsetzen des Consumers gegenüber dem Transfer: im ersten Bild sofort nach dem Start, im zweiten erst nach dem Transferergebnis.