Antwortweg Kafka
Hinweis: Siehe auch Abschnitt Dateinamen, Dateimuster, Pfade, System-Konstanten und Variablen.
(1) Der Kafka-Alias. Siehe Abschnitt Kafka-Verbindungen.
(2) 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) 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) 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_data 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) 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_data als Consumer ist so lange blockiert, bis jemand diese falsche Nachricht vom Broker entfernt und verarbeitet so lange keine Nachrichten von diesem Topic!
(6) Der (optionale) Schlüssel der Nachricht.
(7) Eine optionale ID eines Kafka-Consumers (in einer Consumer-Gruppe), die bei jeder Anforderung an einen Kafka-Broker übergeben wird.
(8) Über das Kontextmenü können weitere Producer Properties definiert werden.
Hinweis: 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_data 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.