Kafka-Client erstellen
Kafka-Client ist eine Anwendung, mit der Sie mit einem Kafka-Cluster interagieren können. Sie erstellen Producer-Anwendungen, um Daten an Kafka-Themen und Consumer-Anwendungen zu senden, um die Nachrichten aus Kafka-Themen zu lesen.
Bevor Sie beginnen
- Bestätigen Sie, dass Sie mit Apache Kafka ein Kafka-Cluster in OCI Streaming erstellt haben.
- Erstellen Sie eine Compute-Instanz im OCI-Mandanten.
- Stellen Sie sicher, dass Sie eine Verbindung zur Compute-Instanz herstellen können.
Kafka installieren
Auf jeder von Ihnen erstellten Compute-Instanz installieren Sie die Apache Kafka-Clientbibliotheken und -tools.
Konfigurieren des Clients
Auf jeder Compute-Instanz, die Sie erstellen, konfigurieren Sie die Clienteigenschaftendatei.
Kafka-CLI verwenden
Nachdem Sie die Clientanwendung installiert und konfiguriert haben, verwenden Sie die integrierten Apache Kafka-CLI-Tools, um das Kafka-Cluster in Streaming mit Apache Kafka zu verwalten und damit zu interagieren.
Apache Kafka enthält einige integrierte Clients. Beispiel: Java Consumer- und Java Producer-Clients.
Darüber hinaus bietet die Kafka-Community viele weitere Clients, die Sie verwenden können.
Im Folgenden finden Sie einige nützliche Kurzreferenzen:
Clientkonfiguration verwalten
Kafka-Clients erfordern spezifische Konfigurationen, um anzugeben, wie der Client Nachrichten senden und empfangen, Fehler behandeln und seine Verbindung zum Kafka-Cluster verwalten soll.
Apache Kafka stellt CLI-Tools (Command-Line Interface) im Verzeichnis /bin
bereit. Beispiel: Mit dem Tool kafka-configs.sh
, das in den installierten Kafka-Clientbibliotheken verfügbar ist, können Clientkonfigurationen verwaltet werden.
Im Folgenden finden Sie ein Beispiel für allgemeine CLI-Befehle. Clusterdetails abrufen für die Bootstrap-URL in den Befehlen. Geben Sie den Pfad zu der Datei client.properties
an, die Sie beim Konfigurieren des Clients erstellt haben.
Um eine Themenkonfiguration anzuzeigen, führen Sie das Tool kafka-configs.sh
aus, indem Sie den Namen des Themas angeben, für das Sie die Konfiguration anzeigen möchten.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--describe
Um Partitions- und Replikationsinformationen für alle Themen anzuzeigen, führen Sie das Tool kafka-configs.sh
aus.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--describe | grep Factor | sort
Um eine Themenkonfiguration zu ändern, wie Beibehaltung und Segment, führen Sie das Tool kafka-configs.sh
aus, indem Sie den Namen des Themas angeben, für das Sie die Konfiguration ändern möchten.
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
Um eine Themenkonfiguration zu entfernen, wie Aufbewahrung und Segment, führen Sie das Tool kafka-configs.sh
aus, indem Sie den Namen des Themas angeben, für das Sie die Konfiguration entfernen möchten.
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
Um die Datenträgernutzung für jede Partition anzuzeigen, führen Sie das Tool kafka-log-dirs.sh
aus, und geben Sie den Pfad zur Ausgabelogdatei an.
bin/kafka-log-dirs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--describe | tail -1 > /tmp/logdirs.output.txt
Führen Sie anschließend den folgenden Befehl aus, um die Logdatei zu filtern und ihren Inhalt anzuzeigen. Passen Sie brokers[0]
an, um einen bestimmten Broker als Ziel festzulegen.
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}'
Um das Tracelog für einen Broker zu aktivieren, erstellen Sie eine Datei log4j.properties
mit den folgenden Eigenschaften.
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
Danach führen Sie den folgenden Befehl aus.
export KAFKA_OPTS="-Dlog4j.configuration=file:/path/to/log4j.properties"
Clientmetriken überwachen
Sie müssen die Clientanwendungen und das Kafka-Cluster überwachen.
Mit dem OCI Monitoring-Service können Sie die von den Kafka-Brokern ausgegebenen Metriken überwachen.
Für die clientseitigen Metriken müssen Sie ein eigenes benutzerdefiniertes Dashboard erstellen, um Clientanwendungen zu überwachen. Überwachen Sie mindestens die folgenden Clientmetriken:
record-send-rate
request-latency-avg
error-rate
records-consumed-rate
lag
fetch-latency-avg
Retries
disconnects