kafkaSend(
producer: "producer-id",
message: $message,
key: $key,
headers: $headers,
topic: "my-topic",
timeout: 3000,
partition: 0
)
Sendet eine Nachricht über einen Apache Kafka Server. Die Nachricht wird dem benannten Produzenten übergeben, der sie entsprechend seiner Konfiguration verschickt.
| 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 | - |
Es gibt keinen Rückgabewert. Die Kommunikation mittels Apache Kafka ist asynchron.
kafkaSend(producer: "your-producer", message: "Hello World");
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
)
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.
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.