Antwortweg Kafka

Prev Next

Einstellungen

(1) Alias: Der Kafka-Alias. Siehe Abschnitt Kafka-Verbindungen (Konfiguration/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!

Typ “Avro” und “Avro_apicurio”:

Geben Sie den Pfad zu Ihrer Schemadatei im Feld “Pfad zur Schemadatei“ an. Wählen Sie einen HTTP-Kanal in Feld “Schema Registry Kanal” aus. Verwendete Werte aus Kanal: “Partner Adresse” (für Feld “Schema Registry URL”), “Eigene Kennung”, “Eigenes Kennwort”. Ein Wert in Feld “Schema Registry URL” überschreibt den Kanal-Wert. Consumer Properties in (8) überschreiben die Kanalwerte auch.

Eine gesetzte Checkbox “Schema automatisch registrieren“ registriert das Schema automatisch auf dem Schema-Registrierungsserver. Führen Sie diesen Schritt nur aus, wenn Sie sicher sind, dass die angegebene Schemadatei korrekt ist und Sie diese Änderung wünschen.

(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. Es können Variablen (Syntax @VAR_NAME@) verwendet 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 zugegriffen werden.