Antwortweg Kafka

Einstellungen


(1) Alias: Der Kafka-Alias. Siehe Abschnitt Kafka-Verbindungen.

(2) Topic: Das Topic, an das die Nachricht gesendet wird. Hinweis: Falls die System-Variable KAFKA_PARTITION des Typs Integer definiert ist und einen Wert >=0 hat, wird dieser als zu verwendende Partition des Topics übergeben.

(3) Persist too large messages: Dies ist eine spezielle Einstellung, die Sie im Normalfall ignorieren können (und sollten). Wenn eine verschickte Nachricht zu groß ist (Broker-Limit 1 MB per Default, 10 MB Protokoll-Limit), kommt es normalerweise zu einer Exception. Wenn diese Checkbox gesetzt ist, dann wird diese Exception abgefangen, die Datei stattdessen in einem lokalen Ordner abgelegt und eine Dummy-Nachricht mit einem Verweis auf die lokale Datei versendet, mit der sich der Empfänger automatisch diese lokale Datei besorgt. Dies funktioniert momentan aber nur, wenn die Consumer, die auf das Topic (2) hören, sich im selben Load-Balancing-System befinden. Setzen Sie diese Checkbox ansonsten nicht, da dadurch der Eindruck entsteht, dass die Nachricht erfolgreich versendet wurde, aber der Empfänger diese nicht empfangen kann.

(4) Data Type: Der Datentyp der zu sendenden Daten der Nachricht. Wichtiger Hinweis: Der Datentyp muss immer angegeben werden. Achten Sie darauf, dass Sie beim Senden und Empfangen immer übereinstimmende Typen verwenden. Wird z. B. eine Nachricht als Byte/String definiert und gesendet und dann als Integer/Byte gelesen, führt das zu einem Fehler und die Nachricht kann nicht gelesen werden. Lobster Integration als Consumer ist so lange blockiert, bis jemand diese falsche Nachricht vom Broker entfernt und verarbeitet so lange keine Nachrichten von diesem Topic! Wichtiger Hinweis: Wird der Datentyp AVRO verwendet, muss zusätzlich der Pfad zu einer Schema-Datei und in (8) die Adresse zur Schema-Registry angegeben werden. Name: schema.registry.url , Wert: http://address:port. Zudem muss der JsonToAvroBinaryPostExecuter verwendet werden (siehe dort).

(5) Key Type: Der Datentyp des Schlüssels der Nachricht. Wichtiger Hinweis: Der Datentyp muss immer angegeben werden. Achten Sie darauf, dass Sie beim Senden und Empfangen immer übereinstimmende Typen verwenden. Wird z. B. eine Nachricht als Byte/String definiert und gesendet und dann als Integer/Byte gelesen, führt das zu einem Fehler und die Nachricht kann nicht gelesen werden. Lobster Integration als Consumer ist so lange blockiert, bis jemand diese falsche Nachricht vom Broker entfernt und verarbeitet so lange keine Nachrichten von diesem Topic!

(6) Key: Der (optionale) Schlüssel der Nachricht.

(7) Client-ID: Eine optionale ID eines Kafka-Consumers (in einer Consumer-Gruppe), die bei jeder Anforderung an einen Kafka-Broker übergeben wird.

(8) KafkaProducer Properties: Über das Kontextmenü können weitere Producer Properties definiert werden.

(9) Gesamten Job als gescheitert melden, wenn dieser Antwortweg fehlgeschlagen ist: Normalerweise gilt ein Job nicht notwendigerweise als fehlerhaft, wenn ein einzelner Antwortweg fehlschlägt (siehe Abschnitt Verhalten im Fehlerfall). Das kann hier aber mit dieser Option erzwungen werden.

(10) Zusätzlicher Text bei Fehler: Hier kann ein zusätzlicher Log-Text für den Fehlerfall angegeben werden.

Tombstone


Wird die System-Variable KAFKA_TOMBSTONE auf true gesetzt, dann wird ein Tombstone Record versendet (damit kann man in gewissen Topics Records vorzeitig löschen).

Header-Properties


Sie können mit System-Variablen der Form KAFKA_<Keyname> Header-Properties übergeben. Hinweis: Da man als Value für eine Header-Property nur Byte-Arrays angeben kann, wird in Lobster Integration immer UTF-8 als Encoding verwendet!

Autoserialisierte Listen und Maps


Wenn Sie mit einem Profil mit Kafka-Antwortweg Nachrichten versenden (an einen Kafka-Sever), die von einem Profil mit Kafka-Eingangsagenten abgerufen werden, stehen autoserialisierte Listen und Maps (→ Präfix autoserialize_) automatisch im Profil mit dem Kafka-Eingangsagenten zur Verfügung, wenn im Profil mit dem Kafka-Antwortweg die Variable KAFKA_ADD_AUTOSERIALZE_DATA des Typs Boolean mit dem Wert true angelegt ist.

Beispiel:

Profil 1 hat einen Kafka-Antwortweg, die Variable KAFKA_ADD_AUTOSERIALZE_DATA=true und legt in Phase 3 die Map autoserialize_mymap an.

Profil 2 hat einen Kafka-Eingangsagenten, der die von Profil 1 erzeugte Nachricht abruft. In Phase 3 kann nun direkt auf die Map autoserialize_mymap zugefriffen werden.