Einstellen und Abrufen von benutzerdefinierten Kafka-Header-Eigenschaften
Sie können benutzerdefinierte Kafka-Header-Eigenschaften verwenden, um Metadaten mit einer Kafka-Nachricht zu verknüpfen.
Vorbereitungen
Informationen zu dieser Task
Kafka mit benutzerdefinierten Header-Eigenschaften können Sie der Nachricht Kafka Metadaten hinzufügen, die dann bei der Verarbeitung der Nachricht verwendet werden können. Die Headereigenschaften können beispielsweise Informationen zum Format der Daten enthalten, wie z. B. einen Schemanamen.
Bei den benutzerdefinierten Kopfzeileneigenschaften von Kakfa handelt es sich um eine Reihe von name:value -Paaren, die bei der Veröffentlichung mit einer Kafka -Nachricht verknüpft und beim Abruf der Nachricht abgerufen werden können. IBM App Connect Enterprise unterstützt „ Kafka “-Header-Eigenschaften, die aus einem Namen im Java-String-Format und einem Wert bestehen.
Diese Eigenschaften werden in der LocalEnvironment in einem Ordner namens KafkaHeader festgelegt. Für den KafkaProducer knoten werden alle Eigenschaftswerte mit Ausnahme von BLOB-Werten in UTF-8 Strings umgewandelt, bevor die Bytes in der Header-Eigenschaft in der Kafka Nachricht gespeichert werden. Bei BLOB-Werten werden die Bytes in der Header-Eigenschaft der Nachricht Kafka gespeichert, ohne umgewandelt zu werden. Für KafkaConsumer und KafkaRead werden die Werte der Header-Eigenschaften in der empfangenen Nachricht standardmäßig in String-Werte umgewandelt, wenn sie in die lokale Umgebung geschrieben werden. Um die Werte als Bytes anstelle von Zeichenketten zu erhalten, setzen Sie die Eigenschaft Header scheme auf dem Knoten auf Bytes.
Environment.Destination.Kafka.Output.KafkaHeader -Umgebung festlegen. Zum Beispiel:# To set Kafka custom header properties called 'Name' and 'Occupation'
SET OutputLocalEnvironment.Destination.Kafka.Output.KafkaHeader.Name = 'Bob';
SET OutputLocalEnvironment.Destination.Kafka.Output.KafkaHeader.Occupation = 'Builder';LocalEnvironment.Kafka.Input mit allen benutzerdefinierten Kopfzeileneigenschaften aktualisiert, die in der empfangenen Nachricht enthalten sind, die dann mithilfe eines Rechenknotens verarbeitet werden kann. Zum Beispiel: # To retrieve the value of the custom header property called 'Name'
SET Name = InputLocalEnvironment.Kafka.Input.KafkaHeader.Name;LocalEnvironment.Kafka.Read mit allen benutzerdefinierten Kopfzeileneigenschaften aktualisiert, die in der empfangenen Nachricht enthalten sind, die dann mithilfe eines Rechenknotens verarbeitet werden kann. Zum Beispiel:# To retrieve the value of the custom header property called 'Occupation'
SET Occupation = InputLocalEnvironment.Kafka.Read.KafkaHeader.Occupation;
Informationen zu Eigenschaften, die im Flow dynamisch überschrieben werden können, enthält der Abschnitt Lokale Umgebungsvariablen mit Kafka -Knoten verwenden.