Creazione di un client Kafka
Il client Kafka è un'applicazione che consente di interagire con un cluster Kafka. È possibile creare applicazioni producer per inviare dati agli argomenti Kafka e alle applicazioni consumer per leggere i messaggi degli argomenti Kafka.
Prima di iniziare
- Confermare di aver creato un cluster Kafka in OCI Streaming con Apache Kafka.
- Creare un'istanza di computazione nella tenancy OCI.
- Conferma di poter connettersi all'istanza di computazione.
Installazione di Kafka
In ogni istanza di computazione creata, è possibile installare le librerie e gli strumenti del client Apache Kafka.
Configurazione del client
In ogni istanza di computazione creata, è possibile configurare il file delle proprietà del client.
Uso dell'interfaccia CLI Kafka
Dopo aver installato e configurato l'applicazione client, utilizzare gli strumenti CLI Apache Kafka integrati per gestire e interagire con il cluster Kafka in Streaming con Apache Kafka.
Apache Kafka include alcuni client integrati. Ad esempio, i client Java Consumer e Java Producer.
Inoltre, la comunità Kafka fornisce molti altri client che è possibile utilizzare.
Di seguito sono riportati alcuni utili riferimenti rapidi:
Gestione della configurazione del client
I client Kafka richiedono configurazioni specifiche per specificare la modalità di invio e ricezione dei messaggi da parte del client, la gestione degli errori e la gestione della connessione al cluster Kafka.
- Riferimento configurazione argomento
- Riferimento configurazione produttore
- Riferimento configurazione consumer
Apache Kafka fornisce strumenti dell'interfaccia a riga di comando (CLI, Command-Line Interface) nella directory /bin
. Ad esempio, lo strumento kafka-configs.sh
disponibile nelle librerie client Kafka installate può essere utilizzato per gestire le configurazioni client.
Di seguito è riportato un esempio di comandi CLI comuni. Ottenere i dettagli del cluster per l'URL di bootstrap nei comandi. Specificare il percorso del file client.properties
creato durante la configurazione del client.
Per visualizzare la configurazione di un argomento, eseguire lo strumento kafka-configs.sh
specificando il nome dell'argomento per il quale si desidera visualizzare la configurazione.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--describe
Per visualizzare le informazioni sulla partizione e sulla replica per tutti gli argomenti, eseguire lo strumento kafka-configs.sh
.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--describe | grep Factor | sort
Per modificare la configurazione di un argomento, ad esempio conservazione e segmento, eseguire lo strumento kafka-configs.sh
specificando il nome dell'argomento per il quale si desidera modificare la configurazione.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--alter
--add-config retention.ms=1, segment.ms=60000
Per rimuovere la configurazione di un argomento, ad esempio conservazione e segmento, eseguire lo strumento kafka-configs.sh
specificando il nome dell'argomento per il quale si desidera rimuovere la configurazione.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--alter
--delete-config retention.ms,segment.ms
Per visualizzare l'utilizzo del disco per ciascuna partizione, eseguire lo strumento kafka-log-dirs.sh
e specificare il percorso del file di log di output.
bin/kafka-log-dirs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--describe | tail -1 > /tmp/logdirs.output.txt
Quindi, eseguire il comando seguente per filtrare il file di log e visualizzarne il contenuto. Regolare brokers[0]
per indirizzare un broker specifico.
cat /tmp/logdirs.output.txt
| jq -r '.brokers[0] | .logDirs[0].partitions[] | .partition + " " + (.size|tostring)'
| sort
| awk 'BEGIN {sum=0} {sum+=$2} END {print sum}'
Per abilitare il log di trace per un broker, creare un file log4j.properties
con le proprietà riportate di seguito.
log4j.rootLogger=TRACE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Quindi, eseguire il comando seguente.
export KAFKA_OPTS="-Dlog4j.configuration=file:/path/to/log4j.properties"
Monitoraggio delle metriche dei client
È necessario monitorare le applicazioni client e il cluster Kafka.
Utilizza il servizio di monitoraggio OCI per monitorare le metriche emesse dai broker Kafka.
Per le metriche lato client, è necessario creare un dashboard personalizzato per monitorare le applicazioni client. Monitorare almeno le metriche client riportate di seguito.
-
record-send-rate
-
request-latency-avg
-
error-rate
-
records-consumed-rate
-
lag
-
fetch-latency-avg
-
Retries
-
disconnects