Syntax

kafkaSend(
    producer: "producer-id", 
    message: $message, 
    key: $key, 
    headers: $headers,
    topic: "my-topic", 
    timeout: 3000,
    partition: 0
)

Beschreibung

Sendet eine Nachricht über einen Apache Kafka Server. Die Nachricht wird dem benannten Produzenten übergeben, der sie entsprechend seiner Konfiguration verschickt.

Parameter

Name Typ Beschreibung Pflicht Default
producer Zeichenkette Name des Kafka Produzenten ja -
message beliebiger Wert Die Nachricht die geschickt werden soll. Der Wert muss durch den Serialisierer des Produzenten verarbeitet werden können. ja -
key beliebiger Wert Der Key für die Nachricht. Der Wert muss durch den Serialisierer des Produzenten verarbeitet werden können. Siehe die Dokumentation von Apache Kafka für Details. nein -
headers Wörterbuch, Liste

Eine Menge von Schlüssel-/Wertpaaren. Wird nur eine Liste (kein Wörterbuch) übergeben, so werden die Werte der Liste als Header-Schlüssel verwendet, die jeweils keinen Wert haben.

nein -
topic Zeichenkette Das Topic auf dem Kafka Server, in das die Nachricht gesendet werden soll. nein Das Standard-Topic des Produzenten
timeout Ganzzahl Zeit in Millisekunden, bevor das Senden als gescheitert angesehen wird. nein 10 Sekunden
partition Ganzzahl Partition des Topic, von der die Nachricht verarbeitet werden soll, siehe Apache Kafka Dokumentation. nein -

Rückgabewert

Es gibt keinen Rückgabewert. Die Kommunikation mittels Apache Kafka ist asynchron.

Beispiele

Senden einer Text-Nachricht an das Standardtopic des Produzenten

kafkaSend(producer: "your-producer", message: "Hello World");

Senden einer JSON-Nachricht an ein spezielles Topic

Es ist zu beachten, dass für das Versenden von JSON-Nachrichten der "generische Serialisierer" an dem Produzenten konfiguriert werden muss.

kafkaSend(
    producer: "your-producer", 
    topic: "your-topic"	

    message: {
        "question": "Hello World! How are you?",
        "priority": 42
    },
    key: {
        "channel": "irrelevant questions",
        "some-key": "some-value"
    }
    headers: {
        "key-1": "value-1",
        "key-2": "value-2",
        "key-3": "value-3"
    },

    timeout: 10000,
    partition: 0
)

Konfiguration des Produzenten

Produzenten werden in der Anwendungskonfiguration definiert. Sie können im Service-Editor unter "Kafka Produzenten-Service" eingesehen und bearbeitet werden. Der Service Editor befindet sich in der Sicht "Administration > Development > Service Editor".

Der Nachrichteninhalt (message) und der Schlüssel (key) müssen von den im Produzenten hinterlegten Serialisierern für Inhalt und Schlüssel verarbeitet werden können. Um JSON-formattierte Nachrichten zu versenden, bietet es sich an, den generischen Serialisierer zu verwenden.

Empfang von Nachrichten

Zum Empfangen von Nachrichten von einem Apache Kafka Server muss im "Kafka Empfänger Service" ein "Empfänger" mit einem "Nachrichtenprozessor" konfiguriert werden. Für die In-App-Konfiguration gibt es den "TL-Script Nachrichtenprozessor". Diesem wird ein TL-Script konfiguriert, dass aufgerufen wird sobald eine Nachricht empfangen wird.