Impostazione e richiamo delle proprietà dell'intestazione personalizzata Kafka

Puoi utilizzare le proprietà dell'intestazione personalizzata Kafka per associare metadati a un messaggio Kafka .

Prima di iniziare

Consultare gli argomenti riportati di seguito:

Informazioni su questa attività

Kafka le proprietà di intestazione personalizzate consentono di aggiungere metadati al messaggio Kafka, che possono essere utilizzati durante l'elaborazione del messaggio. Ad esempio, le proprietà dell'intestazione possono contenere informazioni sul formato dei dati, come il nome dello schema.

Le proprietà dell'intestazione personalizzata di Kakfa sono un insieme di coppie name:value , che possono essere associate a un messaggio Kafka quando viene pubblicato e poi recuperate quando il messaggio viene recuperato. IBM App Connect Enterprise supporta le proprietà dell'intestazione Kafka, costituite da un nome in formato stringa Java e da un valore.

Le proprietà sono impostate nell'ambiente locale, in una cartella denominata KafkaHeader. Per il nodo KafkaProducer tutti i valori delle proprietà, eccetto i valori BLOB, vengono trasformati in stringhe UTF-8 prima che i byte vengano memorizzati nella proprietà header del messaggio Kafka. Per i valori BLOB, i byte vengono memorizzati nella proprietà header del messaggio Kafka senza essere trasformati. Per KafkaConsumer e KafkaRead i valori delle proprietà dell'intestazione nel messaggio ricevuto vengono convertiti in valori stringa quando vengono scritti nell'Ambiente locale, per impostazione predefinita. Per ricevere i valori come byte invece che come stringhe, impostare la proprietà Header scheme del nodo su Bytes.

Prima di richiamare il nodo KafkaProducer è possibile impostare le proprietà dell'intestazione personalizzata Kafka nella cartella Environment.Destination.Kafka.Output.KafkaHeader Local Environment. Ad esempio:
# 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';
Al ritorno da un KafkaConsumer la cartella Ambiente locale LocalEnvironment.Kafka.Input viene aggiornata con le proprietà delle intestazioni personalizzate contenute nel messaggio ricevuto, che può essere elaborato da un nodo di calcolo. Ad esempio:
 # To retrieve the value of the custom header property called 'Name'
        SET Name = InputLocalEnvironment.Kafka.Input.KafkaHeader.Name;
Al ritorno da un KafkaRead la cartella Ambiente locale LocalEnvironment.Kafka.Read viene aggiornata con le proprietà delle intestazioni personalizzate contenute nel messaggio ricevuto, che può essere elaborato da un nodo di calcolo. Ad esempio:
# To retrieve the value of the custom header property called 'Occupation'
        SET Occupation = InputLocalEnvironment.Kafka.Read.KafkaHeader.Occupation;      
Per ulteriori informazioni sui nodi Kafka , consulta i seguenti argomenti:

Per informazioni sulle proprietà che possono essere sovrascritte dinamicamente nel flusso, consulta Utilizzo delle variabili di ambiente locali con nodi Kafka.