In Managed Service for Apache Kafka werden Nachrichten in Themen organisiert. Ein Thema besteht aus Partitionen. Eine Partition ist eine sortierte, unveränderliche Sequenz von Datensätzen, die einem einzelnen Broker in einem Kafka-Cluster gehört. Sie müssen ein Thema erstellen, um Nachrichten zu veröffentlichen oder zu nutzen.
Sie können ein Thema über die Google Cloud Console, die Google Cloud CLI, die Clientbibliothek, die Managed Kafka API oder die Open-Source- Apache Kafka APIs erstellen.
Hinweis
Sie müssen zuerst einen Cluster erstellen, bevor Sie ein Thema erstellen können. Achten Sie darauf, dass Sie Folgendes eingerichtet haben:
Erforderliche Rollen und Berechtigungen zum Erstellen eines Themas
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Managed Kafka Topic Editor (roles/managedkafka.topicEditor) für Ihr Projekt zu erteilen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Themas benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen eines Themas erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen eines Themas erforderlich:
-
Thema erstellen:
managedkafka.topics.create
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Die Rolle „Managed Kafka Topic Editor“ enthält auch die Rolle „Managed Kafka Viewer“. Weitere Informationen zu dieser Rolle finden Sie unter Vordefinierte Rollen für Managed Service for Apache Kafka.
Eigenschaften eines Managed Service for Apache Kafka-Themas
Wenn Sie ein Managed Service for Apache Kafka-Thema erstellen oder aktualisieren, müssen Sie die folgenden Eigenschaften angeben.
Name des Themas
Der Name des zu erstellenden Managed Service for Apache Kafka-Themas. Tipps zum Benennen eines Themas finden Sie unter Richtlinien zum Benennen einer Ressource von Managed Service for Apache Kafka. Der Name eines Themas kann nicht geändert werden.
Anzahl der Partitionen
Die Anzahl der Partitionen im Thema. Sie können ein Thema bearbeiten, um die Anzahl der Partitionen zu erhöhen, aber nicht verringern. Wenn Sie die Anzahl der Partitionen für ein Thema erhöhen, das einen Schlüssel verwendet, kann sich die Verteilung der Nachrichten ändern.
Replikationsfaktor
Die Anzahl der Replikate für jede Partition. Wenn Sie den Wert nicht angeben, wird der Standardreplikationsfaktor des Clusters verwendet.
Ein höherer Replikationsfaktor kann die Datenkonsistenz bei Broker-Ausfällen verbessern, da Daten auf mehrere Broker repliziert werden. Für Produktionsumgebungen wird ein Replikationsfaktor von 3 oder höher empfohlen. Eine höhere Anzahl von Replikaten erhöht die Kosten für lokalen Speicher und Datenübertragung für das Thema. Die Kosten für den persistenten Speicher steigen dadurch jedoch nicht. Der Replikationsfaktor darf die Anzahl der verfügbaren Broker nicht überschreiten.
Sonstige Parameter
Sie können auch andere Konfigurationsparameter auf Themenebene für Apache Kafka festlegen.
Diese werden als key=value-Paare angegeben, die die Cluster-Standardwerte überschreiben.
Konfigurationen im Zusammenhang mit Themen haben einen Serverstandardwert und eine optionale Überschreibung pro Thema. Das Format ist eine durch Kommas getrennte Liste von KEY=VALUE Paaren,
wobei KEY der Name der Konfigurationseigenschaft des Kafka-Themas und VALUE
die erforderliche Einstellung ist.Mit diesen Schlüssel/Wert-Paaren können Sie die Cluster
Standardwerte überschreiben. Beispiele sind flush.ms=10 und compression.type=producer.
Eine Liste aller unterstützten Konfigurationen auf Themenebene finden Sie Topic-level configs in der Apache Kafka-Dokumentation.
Thema erstellen
Prüfen Sie vor dem Erstellen eines Themas die Themeneigenschaften.
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie auf den Cluster, für den Sie ein Thema erstellen möchten.
Die Seite Clusterdetails wird geöffnet.
Klicken Sie auf der Seite mit den Clusterdetails auf Thema erstellen.
Die Seite Kafka-Thema erstellen wird geöffnet.
Geben Sie für Name des Themas einen String ein.
Geben Sie für Anzahl der Partitionen die gewünschte Anzahl der Partitionen ein oder behalten Sie den Standardwert bei.
Geben Sie für Replikationsfaktor den gewünschten Replikationsfaktor ein oder behalten Sie den Standardwert bei.
(Optional) Wenn Sie Themenkonfigurationen ändern möchten, fügen Sie sie als durch Kommas getrennte Schlüssel/Wert-Paare in das Feld Konfigurationen ein.
Klicken Sie auf Erstellen.
gcloud
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell Sitzung gestartet und eine Befehlszeilenaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Führen Sie den
gcloud managed-kafka topics createBefehl aus:gcloud managed-kafka topics create TOPIC_ID \ --cluster=CLUSTER_ID --location=LOCATION_ID \ --partitions=PARTITIONS \ --replication-factor=REPLICATION_FACTOR \ --configs=CONFIGSErsetzen Sie Folgendes:
- TOPIC_ID: Der Name des Themas.
- CLUSTER: Der Name des Clusters, in dem Sie das Thema erstellen möchten.
- LOCATION: Die Region des Clusters.
- PARTITIONS: Die Anzahl der Partitionen für das Thema.
- REPLICATION_FACTOR: Der Replikationsfaktor für das Thema.
- CONFIGS: Optionale Parameter auf Themenebene.
Geben Sie sie als durch Kommas getrennte Schlüssel/Wert-Paare an. Beispiel:
compression.type=producer.
Kafka-Befehlszeile
Bevor Sie diesen Befehl ausführen, installieren Sie die Kafka-Befehlszeilentools auf einer Compute Engine-VM. Die VM muss ein Subnetz erreichen können, das mit Ihrem Managed Service for Apache Kafka Cluster verbunden ist. Folgen Sie der Anleitung unter Nachrichten mit den Kafka-Befehlszeilentools produzieren und nutzen.
Führen Sie den Befehl kafka-topics.sh so aus:
kafka-topics.sh --create --if-not-exists \
--bootstrap-server=BOOTSTRAP_ADDRESS \
--command-config client.properties \
--topic TOPIC_ID \
--partitions PARTITIONS \
--replication-factor REPLICATION_FACTOR
Ersetzen Sie Folgendes:
BOOTSTRAP_ADDRESS: Die Bootstrap-Adresse des Managed Service for Apache Kafka-Clusters.
TOPIC_ID: Der Name des Themas.
PARTITIONS: Die Anzahl der Partitionen für das Thema.
REPLICATION_FACTOR: Der Replikationsfaktor für das Thema.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
-
PROJECT_ID: Ihre Google Cloud Projekt-ID -
LOCATION: Der Standort des Clusters -
CLUSTER_ID: Die ID des Clusters -
TOPIC_ID: Die ID des Themas -
PARTITION_COUNT: Die Anzahl der Partitionen für das Thema -
REPLICATION_FACTOR: Die Anzahl der Replikate jeder Partition
HTTP-Methode und URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID/topics?topicId=TOPIC_ID
JSON-Text anfordern:
{
"name": "TOPIC_ID",
"partitionCount": PARTITION_COUNT,
"replicationFactor": REPLICATION_FACTOR
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID/topics/TOPIC_ID",
"partitionCount": PARTITION_COUNT,
"replicationFactor": REPLICATION_FACTOR
}
Terraform
Sie können eine Terraform-Ressource verwenden, um ein Thema zu erstellen.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Go
Folgen Sie der Einrichtungsanleitung für Go unter Clientbibliotheken installieren, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Managed Service for Apache Kafka Go API.
Richten Sie zur Authentifizierung bei Managed Service for Apache Kafka die Standardanmeldedaten für Anwendungen(Application Default Credentials, ADC) ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Java
Folgen Sie der Einrichtungsanleitung für Java unter Clientbibliotheken installieren, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Managed Service for Apache Kafka Java API.
Richten Sie zur Authentifizierung bei Managed Service for Apache Kafka die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
Python
Folgen Sie der Einrichtungsanleitung für Python unter Clientbibliotheken installieren, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Managed Service for Apache Kafka Python API.
Richten Sie zur Authentifizierung bei Managed Service for Apache Kafka die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.