Nachrichten mit den Kafka-Befehlszeilentools produzieren und nutzen
Hier erfahren Sie, wie Sie mit den Kafka-Befehlszeilentools eine Verbindung zu einem Managed Service for Apache Kafka-Cluster herstellen, Nachrichten produzieren und Nachrichten nutzen.
Hinweis
Erstellen Sie vor Beginn dieses Tutorials einen neuen Managed Service for Apache Kafka-Cluster. Wenn Sie bereits einen Cluster haben, können Sie diesen Schritt überspringen.
Cluster erstellen
Console
- Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.
- Klicken Sie auf Erstellen.
- Geben Sie im Feld Clustername einen Namen für den Cluster ein.
- Wählen Sie in der Liste Region einen Standort für den Cluster aus.
-
Konfigurieren Sie unter Netzwerkkonfiguration das Subnetz, in dem der Cluster zugänglich ist:
- Wählen Sie unter Projekt Ihr Projekt aus.
- Wählen Sie unter Netzwerk das VPC-Netzwerk aus.
- Wählen Sie unter Subnetz das Subnetz aus.
- Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
Nachdem Sie auf Erstellen geklickt haben, ist der Clusterstatus Creating. Wenn der Cluster
bereit ist, lautet der Status Active.
gcloud
Führen Sie den
managed-kafka clusters
create Befehl aus, um einen Kafka-Cluster zu erstellen.
gcloud managed-kafka clusters create KAFKA_CLUSTER \ --location=REGION \ --cpu=3 \ --memory=3GiB \ --subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --async
Ersetzen Sie Folgendes:
KAFKA_CLUSTER: ein Name für den Kafka-ClusterREGION: der Standort des ClustersPROJECT_ID: Ihre Projekt-IDSUBNET_NAME: das Subnetz, in dem Sie den Cluster erstellen möchten, z. B.default
Informationen zu unterstützten Standorten finden Sie unter Managed Service for Apache Kafka-Standorte.
Der Befehl wird asynchron ausgeführt und gibt eine Vorgangs-ID zurück:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Verwenden Sie den
gcloud managed-kafka
operations describe Befehl, um den Fortschritt des Erstellungsvorgangs zu verfolgen:
gcloud managed-kafka operations describe OPERATION_ID \ --location=REGION
Wenn der Cluster bereit ist, enthält die Ausgabe dieses Befehls den Eintrag state:
ACTIVE. Weitere Informationen finden Sie unter
Erstellungsvorgang des Clusters beobachten.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Konfigurieren einer Client-VM benötigen:
- Compute-Instanzadministrator (Version 1) (
roles/compute.instanceAdmin.v1) - Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) - Rollenbetrachter (
roles/iam.roleViewer) - Dienstkontonutzer (
roles/iam.serviceAccountUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Client-VM erstellen
Erstellen Sie eine Linux-VM-Instanz (Virtual Machine) in der Compute Engine, die auf den Kafka-Cluster zugreifen kann. Konfigurieren Sie beim Konfigurieren der VM die folgenden Optionen:
Region Erstellen Sie die VM in derselben Region wie Ihren Kafka-Cluster.
Subnetz Erstellen Sie die VM im selben VPC-Netzwerk wie das Subnetz, das Sie in der Kafka-Clusterkonfiguration verwendet haben. Weitere Informationen finden Sie unter Subnetze eines Clusters ansehen.
Zugriffsbereiche Weisen Sie der VM den
https://www.googleapis.com/auth/cloud-platformZugriffsbereich zu. Mit diesem Bereich wird die VM autorisiert, Anfragen an die Managed Kafka API zu senden.
In den folgenden Schritten wird gezeigt, wie Sie diese Optionen festlegen.
Console
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Führen Sie im Bereich Maschinenkonfiguration die folgenden Schritte aus:
Geben Sie im Feld Name einen Namen für die Instanz an. Weitere Informationen finden Sie unter Namenskonvention für Ressourcen.
Wählen Sie in der Liste Region dieselbe Region wie für Ihren Kafka-Cluster aus.
Wählen Sie in der Liste Zone eine Zone aus.
Klicken Sie im Navigationsmenü auf Netzwerk. Führen Sie im angezeigten Bereich Netzwerk die folgenden Schritte aus:
Gehen Sie zum Abschnitt Netzwerkschnittstellen.
Klicken Sie auf den Pfeil, um die Standardnetzwerkschnittstelle zu maximieren.
Wählen Sie im Feld Netzwerk das VPC-Netzwerk aus.
Wählen Sie in der Liste Subnetzwerk das Subnetz aus.
Klicken Sie auf Fertig.
Klicken Sie im Navigationsmenü auf Sicherheit. Führen Sie im angezeigten Bereich Sicherheit die folgenden Schritte aus:
Wählen Sie unter Zugriffsbereiche die Option Zugriff für jede API festlegen aus.
Suchen Sie in der Liste der Zugriffsbereiche die Drop-down-Liste Cloud Platform und wählen Sie Aktiviert aus.
Klicken Sie auf Erstellen , um die VM zu erstellen.
gcloud
Verwenden Sie den
gcloud compute instances create
Befehl, um die VM-Instanz zu erstellen.
gcloud compute instances create VM_NAME \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--subnet=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET \
--zone=ZONE
Ersetzen Sie Folgendes:
- VM_NAME: der Name der VM
- PROJECT_ID: Ihre Projekt-ID
- REGION: die Region, in der Sie den Kafka
Cluster erstellt haben, z. B.
us-central1 - SUBNET: ein Subnetz im selben VPC -Netzwerk wie das Subnetz, das Sie in der Clusterkonfiguration verwendet haben
- ZONE: eine Zone in der Region, in der Sie den
Cluster erstellt haben, z. B.
us-central1-c
Weitere Informationen zum Erstellen einer VM finden Sie unter VM-Instanz in einem bestimmten Subnetz erstellen.
IAM-Rollen zuweisen
Weisen Sie dem Compute Engine-Standarddienstkonto die folgenden IAM-Rollen (Identity and Access Management) zu:
- Managed Kafka Client (
roles/managedkafka.client) - Ersteller von Dienstkonto-Tokens (
roles/iam.serviceAccountTokenCreator) Ersteller von OpenID-Tokens für Dienstkonten (
roles/iam.serviceAccountOpenIdTokenCreator)
Console
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Suchen Sie die Zeile für das Compute Engine-Standarddienstkonto und klicken Sie auf Hauptkonto bearbeiten.
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie die Rolle Managed Kafka Client aus. Wiederholen Sie diesen Schritt für die Rollen Ersteller von Dienstkonto-Tokens und Ersteller von OpenID-Tokens für Dienstkonten.
Klicken Sie auf Speichern.
gcloud
Verwenden Sie den
gcloud projects add-iam-policy-binding
Befehl, um IAM-Rollen zuzuweisen.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role=roles/managedkafka.client
gcloud projects add-iam-policy-binding PROJECT_ID\
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role=roles/iam.serviceAccountTokenCreator
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role=roles/iam.serviceAccountOpenIdTokenCreator
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID
PROJECT_NUMBER: Ihre Projektnummer
Führen Sie den
gcloud projects describe Befehl aus, um die Projektnummer abzurufen:
gcloud projects describe PROJECT_ID
Weitere Informationen finden Sie unter Projektname, -nummer und -ID ermitteln.
Verbindung zur VM herstellen
Stellen Sie über SSH eine Verbindung zur VM-Instanz her.
Console
Rufen Sie die Seite VM-Instanzen auf.
Suchen Sie in der Liste der VM-Instanzen den Namen der VM und klicken Sie auf SSH.
gcloud
Verwenden Sie den
gcloud compute ssh Befehl, um eine Verbindung zur VM herzustellen.
gcloud compute ssh VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Ersetzen Sie Folgendes:
- VM_NAME: der Name der VM
- PROJECT_ID: Ihre Projekt-ID
- ZONE: die Zone, in der Sie die VM erstellt haben
Bei der ersten Verwendung von SSH ist möglicherweise eine zusätzliche Konfiguration erforderlich. Weitere Informationen finden Sie unter Informationen zu SSH-Verbindungen.
Kafka-Befehlszeilentools installieren
Führen Sie in Ihrer SSH-Sitzung die folgenden Befehle aus, um die Kafka-Befehlszeilentools zu installieren.
Installieren Sie Java, das zum Ausführen der Kafka-Befehlszeilentools erforderlich ist, und
wget, um Abhängigkeiten herunterzuladen. Bei den folgenden Befehlen wird davon ausgegangen, dass Sie eine Debian Linux-Umgebung verwenden.sudo apt-get install default-jre wgetInstallieren Sie die Kafka-Befehlszeilentools.
wget -O kafka_2.13-3.7.2.tgz https://archive.apache.org/dist/kafka/3.7.2/kafka_2.13-3.7.2.tgz tar xfz kafka_2.13-3.7.2.tgzLegen Sie die folgenden Umgebungsvariablen fest:
export KAFKA_HOME=$(pwd)/kafka_2.13-3.7.2 export PATH=$PATH:$KAFKA_HOME/bin export CLASSPATH=$CLASSPATH:$KAFKA_HOME/libs/release-and-dependencies/*:$KAFKA_HOME/libs/release-and-dependencies/dependency/*
Authentifizierung einrichten
Führen Sie in Ihrer SSH-Sitzung die folgenden Schritte aus, um die Managed Service for Apache Kafka-Authentifizierungsbibliothek einzurichten.
Laden Sie die Bibliothek herunter und installieren Sie sie lokal.
wget https://github.com/googleapis/managedkafka/releases/download/v1.0.5/release-and-dependencies.zip sudo apt-get install unzip unzip -n -j release-and-dependencies.zip -d $KAFKA_HOME/libs/Mit diesem Befehl wird die Bibliothek im Verzeichnis
libdes Kafka-Installationsverzeichnisses installiert. Die Kafka-Befehlszeilentools suchen in diesem Verzeichnis nach Java-Abhängigkeiten.Erstellen Sie mit einem Texteditor eine Datei mit dem Namen
client.propertiesund fügen Sie Folgendes ein:security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.login.callback.handler.class=com.google.cloud.hosted.kafka.auth.GcpLoginCallbackHandler sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;Speichern Sie die Datei. In dieser Datei wird ein Kafka-Client mit den folgenden Einstellungen konfiguriert:
Verwenden Sie SASL_SSL für die sichere Kommunikation mit dem Kafka-Cluster.
Verwenden Sie OAuth 2.0-Bearertokens zur Authentifizierung.
Verwenden Sie die von der Bibliothek bereitgestellte
GcpLoginCallbackHandlerKlasse als Anmelde Callback-Handler, um OAuth 2.0-Tokens abzurufen.
Nachrichten produzieren und nutzen
Führen Sie in Ihrer SSH-Sitzung die folgenden Befehle aus, um Kafka-Nachrichten zu produzieren und zu nutzen.
Legen Sie die Bootstrap-Adresse als Umgebungsvariable fest.
export BOOTSTRAP=bootstrap.CLUSTER_ID.REGION.managedkafka.PROJECT_ID.cloud.goog:9092Ersetzen Sie Folgendes:
CLUSTER_ID: der Name Ihres ClustersREGION: der Ort, an dem Sie den Cluster erstellt habenPROJECT_ID: Ihre Projekt-ID
Weitere Informationen finden Sie unter Bootstrap-Adresse abrufen.
Listen Sie die Themen im Cluster auf.
kafka-topics.sh --list \ --bootstrap-server $BOOTSTRAP \ --command-config client.propertiesSchreiben Sie eine Nachricht in ein Thema.
echo "hello world" | kafka-console-producer.sh \ --topic KAFKA_TOPIC_NAME \ --bootstrap-server $BOOTSTRAP \ --producer.config client.propertiesErsetzen Sie KAFKA_TOPIC_NAME durch den Namen des Themas.
Nutzen Sie Nachrichten aus dem Thema.
kafka-console-consumer.sh \ --topic KAFKA_TOPIC_NAME \ --from-beginning \ --bootstrap-server $BOOTSTRAP \ --consumer.config client.propertiesDrücken Sie Strg + C, um die Nutzung von Nachrichten zu beenden.
Führen Sie einen Leistungstest für den Producer aus.
kafka-producer-perf-test.sh \ --topic KAFKA_TOPIC_NAME \ --num-records 1000000 --throughput 1000 --print-metrics --record-size 1024 \ --producer-props bootstrap.servers=$BOOTSTRAP \ --producer.config client.properties
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden.
Console
Löschen Sie die VM-Instanz.
Rufen Sie die Seite VM-Instanzen auf.
Wählen Sie die VM aus und klicken Sie auf Löschen.
Löschen Sie den Kafka-Cluster.
Rufen Sie die Seite Managed Service for Apache Kafka > Cluster auf.
Wählen Sie den Kafka-Cluster aus und klicken Sie auf Löschen.
gcloud
Verwenden Sie den
gcloud compute instances deleteBefehl, um die VM zu löschen.gcloud compute instances delete VM_NAME --zone=ZONEVerwenden Sie den
gcloud managed-kafka clusters deleteBefehl, um den Kafka-Cluster zu löschen.gcloud managed-kafka clusters delete CLUSTER_ID \ --location=REGION --async
Nächste Schritte
- Übersicht über Managed Service for Apache Kafka
- Bei Managed Service for Apache Kafka authentifizieren
- Netzwerk konfigurieren