Von Kafka zu Pub/Sub Lite migrieren

Dieses Dokument ist nützlich, wenn Sie die Migration von selbstverwaltetem Apache Kafka zu Pub/Sub Lite erwägen.

Übersicht über Pub/Sub Lite

Pub/Sub Lite ist ein Messaging-Dienst mit hohem Volumen, der auf kostengünstige Betriebskosten ausgelegt ist. Pub/Sub Lite bietet zonalen und regionalen Speicher sowie vorab bereitgestellte Kapazität. In Pub/Sub Lite können Sie zonale oder regionale Lite-Themen auswählen. Regionale Lite-Themen bieten dasselbe SLA zur Verfügbarkeit wie Pub/Sub-Themen. Es gibt jedoch Unterschiede bei der Zuverlässigkeit zwischen Pub/Sub und Pub/Sub Lite in Bezug auf die Nachrichtenreplikation.

Weitere Informationen zu Pub/Sub und Pub/Sub Lite finden Sie unter Was ist Pub/Sub?.

Weitere Informationen zu von Lite unterstützten Regionen und Zonen finden Sie unter Pub/Sub Lite-Standorte.

Terminologie in Pub/Sub Lite

Im Folgenden finden Sie einige wichtige Begriffe für Pub/Sub Lite.

  • Nachricht. Daten, die durch den Pub/Sub Lite-Dienst geleitet werden.

  • Thema: Eine benannte Ressource, die einen Feed von Nachrichten darstellt. In Pub/Sub Lite können Sie ein zonales oder regionales Lite-Thema erstellen. Regionale Pub/Sub Lite-Themen speichern Daten in zwei Zonen einer einzelnen Region. Zonale Pub/Sub Lite-Themen replizieren Daten in nur einer Zone.

  • Reservierung. Ein benannter Pool mit Durchsatzkapazität, die von mehreren Lite-Themen in einer Region gemeinsam genutzt wird.

  • Abo: Eine benannte Ressource, die für ein Interesse am Empfangen von Nachrichten von einem bestimmten Lite-Thema steht. Ein Abo ähnelt einer Nutzergruppe in Kafka, die nur eine Verbindung zu einem einzigen Thema herstellt.

  • Abonnent: Ein Client von Pub/Sub Lite, der Nachrichten von einem Lite-Thema und einem bestimmten Abo empfängt. Ein Abo kann mehrere Abonnentenclients haben. In einem solchen Fall wird das Load-Balancing der Nachrichten auf die Abonnentenclients verteilt. In Kafka wird ein Abonnent als Nutzer bezeichnet.

  • Verlag oder Webpublisher: Eine Anwendung, die Nachrichten erstellt und an ein bestimmtes Lite-Thema sendet (veröffentlicht). Ein Thema kann mehrere Publisher haben. In Kafka wird ein Verlag oder Webpublisher als Producer bezeichnet.

Unterschiede zwischen Kafka und Pub/Sub Lite

Pub/Sub Lite ist konzeptionell ähnlich wie Kafka, es ist jedoch ein anderes System mit einer enger gefassten API, das sich stärker auf die Datenaufnahme konzentriert. Die Unterschiede sind zwar für die Streamaufnahme und -verarbeitung unerheblich. Es gibt jedoch einige spezifische Anwendungsfälle, bei denen sie wichtig sind.

Kafka als Datenbank

Im Gegensatz zu Kafka unterstützt Pub/Sub Lite derzeit keine Transaktionsveröffentlichung oder Logverdichtung, obwohl Idempotenz unterstützt wird. Diese Kafka-Funktionen sind nützlicher, wenn Sie Kafka als Datenbank und nicht als Nachrichtensystem verwenden. Wenn Sie Kafka hauptsächlich als Datenbank verwenden, sollten Sie einen eigenen Kafka-Cluster ausführen oder eine verwaltete Kafka-Lösung wie Confluent Cloud verwenden. Wenn keine dieser Lösungen für Sie infrage kommt, können Sie auch eine horizontal skalierbare Datenbank wie Cloud Spanner verwenden.

Kafka-Streams

Kafka-Streams sind ein Datenverarbeitungssystem, das auf Kafka basiert. Es ermöglicht zwar das Einfügen von Privatkundenclients, erfordert jedoch Zugriff auf alle Administratorvorgänge. Kafka Streams verwendet außerdem die transaktionalen Datenbankattribute von Kafka zum Speichern interner Metadaten. Pub/Sub Lite kann derzeit also nicht für Kafka Streams-Anwendungen verwendet werden.

Apache Beam ist ein ähnliches Streaming-Datenverarbeitungssystem, das in Kafka, Pub/Sub und Pub/Sub Lite eingebunden ist. Sie können Beam-Pipelines vollständig verwaltet mit Dataflow oder in Ihren bereits vorhandenen Apache Flink- und Apache Spark-Clustern ausführen.

Überwachen

Kafka-Clients können serverseitige Messwerte lesen. In Pub/Sub Lite werden Messwerte, die für das Verhalten von Verlagen und Webpublishern und Abonnenten relevant sind, ohne zusätzliche Konfiguration über Cloud Monitoring verwaltet.

Kapazitätsverwaltung

Die Kapazität eines Kafka-Themas wird durch die Kapazität des Clusters bestimmt. Replikation, Schlüsselverdichtung und Batcheinstellungen bestimmen die Kapazität, die erforderlich ist, um ein bestimmtes Thema im Kafka-Cluster zu bedienen. Der Durchsatz eines Kafka-Themas ist durch die Kapazität der Maschinen begrenzt, auf denen die Broker ausgeführt werden. Im Gegensatz dazu müssen Sie für ein Pub/Sub Lite-Thema sowohl die Speicher- als auch die Durchsatzkapazität definieren. Die Pub/Sub Lite-Speicherkapazität ist eine konfigurierbare Eigenschaft des Themas. Die Durchsatzkapazität basiert auf der Kapazität der konfigurierten Reservierung und auf inhärenten oder konfigurierten Limits pro Partition.

Authentifizierung und Sicherheit

Apache Kafka unterstützt mehrere offene Authentifizierungs- und Verschlüsselungsmechanismen. Mit Pub/Sub Lite basiert die Authentifizierung auf dem IAM-System. Sicherheit wird durch Verschlüsselung von ruhenden Daten und Daten bei der Übertragung gewährleistet. Weitere Informationen zur Authentifizierung mit Pub/Sub Lite finden Sie im Abschnitt zum Migrationsworkflow weiter unten in diesem Dokument.

Kafka-Properties Pub/Sub Lite-Properties zuordnen

Kafka bietet viele Konfigurationsoptionen, mit denen die Themenstruktur, die Limits und die Broker-Attribute gesteuert werden. In diesem Abschnitt werden einige gängige Funktionen erläutert, die für die Datenaufnahme nützlich sind, und ihre Entsprechungen in Pub/Sub Lite. Da Pub/Sub Lite ein verwaltetes System ist, müssen Sie nicht viele Broker-Attribute berücksichtigen.

Attribute für die Themenkonfiguration

Kafka-Property Pub/Sub Lite-Property Beschreibung
retention.bytes Speicher pro Partition Alle Partitionen in einem Lite-Thema haben die gleiche konfigurierte Speicherkapazität. Die Gesamtspeicherkapazität eines Lite-Themas entspricht der Summe der Speicherkapazität aller Partitionen im Thema.
retention.ms Aufbewahrungsdauer für Nachrichten Der maximale Zeitraum, für den ein Lite-Thema Nachrichten speichert. Wenn Sie keine Aufbewahrungsdauer für Nachrichten festlegen, werden Nachrichten vom Lite-Thema gespeichert, bis die Speicherkapazität überschritten wird.
flush.ms, acks Nicht konfigurierbar in Pub/Sub Lite Veröffentlichungen werden erst bestätigt, wenn sie garantiert im replizierten Speicher beibehalten werden.
max.message.bytes Nicht konfigurierbar in Pub/Sub Lite 3,5 MiB ist die maximale Nachrichtengröße, die an Pub/Sub Lite gesendet werden kann. Die Größe der Nachricht wird reproduzierbar berechnet.
message.timestamp.type Nicht konfigurierbar in Pub/Sub Lite Bei Verwendung der Nutzerimplementierung wird der Ereigniszeitstempel (falls vorhanden) ausgewählt oder stattdessen der Veröffentlichungszeitstempel verwendet. Bei Verwendung von Beam sind sowohl Veröffentlichungs- als auch Ereigniszeitstempel verfügbar.

Weitere Informationen zu den Attributen eines Lite-Themas finden Sie unter Eigenschaften eines Lite-Themas.

Producer-Konfigurationsattribute

Pub/Sub Lite unterstützt das Producer-Wire-Protokoll. Einige Attribute ändern das Verhalten der Cloud-Clientbibliotheken des Erstellers. Einige gängige Attribute werden in der folgenden Tabelle erläutert.

Kafka-Property Pub/Sub Lite-Property Beschreibung
auto.create.topics.enable Nicht konfigurierbar in Pub/Sub Lite Erstellen Sie ein Thema und ein Abo, das in etwa einer Nutzergruppe für ein einzelnes Thema in Pub/Sub Lite entspricht. Sie können die Console, die gcloud CLI, API oder die Cloud-Clientbibliotheken verwenden.
key.serializer und value.serializer Nicht konfigurierbar in Pub/Sub Lite

Erforderlich, wenn Kafka Producer oder eine gleichwertige Bibliothek über das Wire Protocol kommuniziert.

batch.size In Pub/Sub Lite unterstützt Die Batchverarbeitung wird unterstützt. Der empfohlene Wert für diesen Wert ist 10 MiB für eine optimale Leistung.
linger.ms In Pub/Sub Lite unterstützt Die Batchverarbeitung wird unterstützt. Der empfohlene Wert für diesen Wert ist 50 ms für eine optimale Leistung.
max.request.size In Pub/Sub Lite unterstützt Der Server legt ein Limit von 20 MiB pro Batch fest. Legen Sie für diesen Wert in Ihrem Kafka-Client einen Wert unter 20 MiB fest.
enable.idempotence In Pub/Sub Lite unterstützt
compression.type In Pub/Sub Lite nicht unterstützt Sie müssen diesen Wert explizit auf none festlegen.

Eigenschaften der Nutzerkonfiguration

Pub/Sub Lite unterstützt das Consumer Wire Protocol. Einige Attribute ändern das Verhalten der Cloud-Clientbibliotheken für Nutzer. Einige gängige Attribute werden in der folgenden Tabelle erläutert.

Kafka-Property Beschreibung
key.deserializer und value.deserializer

Erforderlich, wenn der Kafka-Nutzer oder eine vergleichbare Bibliothek über das Wire Protocol kommuniziert.

auto.offset.reset Diese Konfiguration wird nicht unterstützt oder benötigt. Abos haben nach ihrer Erstellung garantiert einen festgelegten Versatzort.
message.timestamp.type Der Veröffentlichungszeitstempel ist immer in Pub/Sub Lite verfügbar und nimmt für jede Partition garantiert nicht ab. Ereigniszeitstempel können vorhanden sein, je nachdem, ob sie bei der Veröffentlichung der Nachricht angehängt wurden oder nicht. Bei Verwendung von Dataflow stehen sowohl Veröffentlichungs- als auch Ereigniszeitstempel gleichzeitig zur Verfügung.
max.partition.fetch.bytes, max.poll.records Legt ein weiches Limit für die Anzahl der Datensätze und Byte fest, die bei der Funktion "poll()" zurückgegeben werden, sowie für die Anzahl der Byte, die von internen Abrufanfragen zurückgegeben werden. Der Standardwert für „max.partition.fetch.bytes“ von 1 MiB kann den Durchsatz Ihres Clients einschränken. Erwägen Sie, diesen Wert zu erhöhen.

Kafka- und Pub/Sub Lite-Features im Vergleich

In der folgenden Tabelle werden Apache Kafka-Features mit Pub/Sub Lite-Features verglichen:

Feature Kafka Pub/Sub Lite
Nachrichtenreihenfolge Ja Ja
Nachrichten deduplizieren Ja Ja, mit Dataflow
Push-Abos Nein Ja mit Pub/Sub-Export
Transaktionen Ja Nein
Nachrichtenspeicher Begrenzt durch verfügbaren Maschinenspeicher Unbegrenzt
Nachricht noch einmal abspielen Ja Ja
Logging und Monitoring Selbstverwaltet Automatisiert mit Cloud Monitoring
Streamverarbeitung Ja mit Kafka Streams, Apache Beam oder Dataproc. Ja mit Beam oder Dataproc.

In der folgenden Tabelle wird verglichen, welche Funktionen von Kafka selbst gehostet werden und welche von Google mit Pub/Sub Lite verwaltet werden:

Feature Kafka Pub/Sub Lite
Verfügbarkeit Stellen Sie Kafka manuell an zusätzlichen Standorten bereit. Weltweit bereitgestellt. Siehe Standorte.
Notfallwiederherstellung Entwerfen und verwalten Sie Ihre eigene Sicherung und Replikation. Von Google verwaltet.
Infrastrukturverwaltung Virtuelle Maschinen (VMs) oder Maschinen manuell bereitstellen und betreiben. Sorgen Sie für einheitliche Versionsverwaltung und Patches. Von Google verwaltet.
Kapazitätsplanung Planen Sie den Speicher- und Rechenbedarf im Voraus manuell. Von Google verwaltet. Sie können die Rechenleistung und den Speicher jederzeit erweitern.
Support Support rund um die Uhr.

Kostenvergleich von Kafka und Pub/Sub Lite

Die Art und Weise, wie Sie Kosten in Pub/Sub Lite schätzen und verwalten, unterscheidet sich von der in Kafka. Die Kosten für einen lokalen oder in der Cloud vorhandenen Kafka-Cluster umfassen die Kosten für Maschinen, Laufwerke, Netzwerke sowie eingehende und ausgehende Nachrichten. Dazu gehören auch die Gemeinkosten für die Verwaltung und Wartung dieser Systeme und der zugehörigen Infrastruktur. Bei der Verwaltung eines Kafka-Clusters müssen Sie die Maschinen manuell aktualisieren, die Clusterkapazität planen und die Notfallwiederherstellung implementieren, die umfassende Planung und Tests umfasst. Sie müssen all diese verschiedenen Kosten aggregieren, um Ihre tatsächlichen Gesamtbetriebskosten (TCO) zu ermitteln.

Die Preise für Pub/Sub Lite umfassen die Reservierungskosten (veröffentlichte Byte, abonnierte Byte, vom Kafka-Proxy verarbeitete Byte) und die Kosten für den bereitgestellten Speicher. Sie zahlen zusätzlich zu den Gebühren für ausgehende Nachrichten nur für die Ressourcen, die Sie reservieren. Mit dem Preisrechner können Sie Ihre Kosten schätzen.

Migrationsworkflow

Folgen Sie der folgenden Anleitung, um ein Thema von einem Kafka-Cluster zu Pub/Sub Lite zu migrieren.

Pub/Sub Lite-Ressourcen konfigurieren

  1. Erstellen Sie eine Pub/Sub Lite-Reservierung für den erwarteten Durchsatz für alle Themen, die Sie migrieren.

    Verwenden Sie den Preisrechner von Pub/Sub Lite, um die Messwerte für den aggregierten Durchsatz Ihrer vorhandenen Kafka-Themen zu berechnen. Weitere Informationen zum Erstellen von Reservierungen finden Sie unter Lite-Reservierungen erstellen und verwalten.

  2. Erstellen Sie für jedes entsprechende Thema in Kafka ein Pub/Sub Lite-Thema.

    Weitere Informationen zum Erstellen von Lite-Themen finden Sie unter Lite-Themen erstellen und verwalten.

  3. Erstellen Sie ein Pub/Sub Lite-Abo für jede entsprechende Nutzergruppe und jedes Thema im Kafka-Cluster.

    Beispiel: Für eine Nutzergruppe namens consumers, die Daten aus topic-a und topic-b nutzt, müssen Sie ein Abo consumers-a erstellen, das mit topic-a verknüpft ist, und ein Abo consumers-b, das mit topic-b verknüpft ist. Weitere Informationen zum Erstellen von Abos findest du unter Lite-Abos erstellen und verwalten.

Bei Pub/Sub Lite authentifizieren

Wählen Sie je nach Typ Ihres Kafka-Clients eine der folgenden Methoden aus:

Java-basierte Kafka-Clients ab Version 3.1.0 mit Neuerstellung

Für Java-basierte Kafka-Clients ab Version 3.1.0, die auf der Instanz, auf der Sie den Kafka-Client ausführen, neu erstellt werden können:

  1. Installieren Sie das Paket com.google.cloud:pubsublite-kafka-auth:

  2. Rufen Sie die erforderlichen Parameter für die Authentifizierung bei Pub/Sub Lite mithilfe von com.google.cloud.pubsublite.kafka.ClientParameters.getParams ab.

    Mit der Methode getParams() (siehe Codebeispiel) werden die folgenden JAAS- und SASL-Konfigurationen als Parameter für die Authentifizierung bei Pub/Sub Lite initialisiert:

    security.protocol=SASL_SSL
    sasl.mechanism=OAUTHBEARER
    sasl.oauthbearer.token.endpoint.url=http://localhost:14293
    sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler
    

Java-basierte Kafka-Clients mit Version 3.1.0 oder höher, die nicht neu erstellt werden müssen

Für Kafka-Clients, die KIP-768 unterstützen, unterstützen wir ausschließlich die OAUTHBEARER-Authentifizierung der Konfiguration, die ein Python-Sidecar-Skript verwendet. Diese Versionen enthalten die Java-Version 3.1.0 oder höher von Januar 2022.

Führen Sie die folgenden Schritte für die Instanz aus, auf der Sie Ihren Kafka-Client ausführen:

  1. Installieren Sie Python 3.6 oder höher.

    Siehe Python installieren.

  2. Installieren Sie das Google-Authentifizierungspaket: pip install google-auth

    Diese Bibliothek vereinfacht die verschiedenen Server-zu-Server-Authentifizierungsmechanismen für den Zugriff auf Google APIs. Weitere Informationen finden Sie auf der google-auth-Seite.

  3. Führen Sie das Skript kafka_gcp_credentials.py aus.

    Dieses Skript startet einen lokalen HTTP-Server und ruft mit google.auth.default() die Google Cloud-Standardanmeldedaten in der Umgebung ab.

    Das Hauptkonto in den abgerufenen Anmeldedaten muss die Berechtigung pubsublite.locations.openKafkaStream für das von Ihnen verwendete Google Cloud-Projekt und den Standort haben, zu dem Sie eine Verbindung herstellen. Die Rollen Pub/Sub Lite-Publisher (roles/pubsublite.publisher) und Pub/Sub Lite-Abonnenten (roles/pubsublite.subscriber) haben diese erforderliche Berechtigung. Fügen Sie diese Rollen Ihrem Hauptkonto hinzu.

    Die Anmeldedaten werden bei der SASL/OAUTHBEARER-Authentifizierung für den Kafka-Client verwendet.

    Die folgenden Parameter sind in Ihren Attributen erforderlich, um sich über den Kafka-Client bei Pub/Sub Lite zu authentifizieren:

    security.protocol=SASL_SSL
    sasl.mechanism=OAUTHBEARER
    sasl.oauthbearer.token.endpoint.url=localhost:14293
    sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler
    sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule \
      required clientId="unused" clientSecret="unused" \
      extension_pubsubProject="PROJECT_ID";
    

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts, in dem Pub/Sub Lite ausgeführt wird.

Alle anderen Clients ohne Neuerstellung

Führen Sie für alle anderen Clients die folgenden Schritte aus:

  1. Laden Sie eine JSON-Datei mit dem Dienstkontoschlüssel für das Dienstkonto herunter, das Sie für Ihren Client verwenden möchten.

  2. Codieren Sie die Dienstkontodatei mit base64-Codierung, die als Authentifizierungsstring verwendet wird.

    Auf Linux- oder macOS-Systemen können Sie den Befehl base64 (oft standardmäßig installiert) so verwenden:

    base64 < my_service_account.json > password.txt
    

    Sie können den Inhalt der Passwortdatei mit den folgenden Parametern zur Authentifizierung verwenden.

    Java

    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
     username="PROJECT_ID" \
     password="contents of base64 encoded password file";
    

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, in dem Pub/Sub ausgeführt wird.

    Librdkafka

    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.username=PROJECT_ID
    sasl.password=contents of base64 encoded password file
    

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, in dem Pub/Sub ausgeführt wird.

Daten mit Kafka Connect klonen

Das Pub/Sub Lite-Team verwaltet eine Implementierung einer Kafka-Connect-Senke. Sie können diese Implementierung so konfigurieren, dass Daten mithilfe eines Kafka Connect-Clusters aus einem Kafka-Thema in ein Pub/Sub Lite-Thema kopiert werden.

Informationen zum Konfigurieren des Connectors für das Kopieren von Daten finden Sie unter Kafka-Connector für Pub/Sub-Gruppen.

Wenn Sie sicherstellen möchten, dass die Partitionsaffinität vom Migrationsprozess nicht betroffen ist, achten Sie darauf, dass das Kafka-Thema und das Pub/Sub Lite-Thema die gleiche Anzahl von Partitionen haben und das Attribut pubsublite.ordering.mode auf KAFKA gesetzt ist. Dadurch leitet der Connector Nachrichten an die Pub/Sub Lite-Partition mit demselben Index wie die Kafka-Partition weiter, in der sie ursprünglich veröffentlicht wurden.

Nutzer migrieren

Das Ressourcenmodell von Pub/Sub Lite unterscheidet sich von dem von Kafka. Vor allem ist ein Abo im Gegensatz zu einer Nutzergruppe eine explizite Ressource und mit genau einem Thema verknüpft. Aus diesem Grund muss an jeder Stelle in der Kafka Consumer API, an der ein topic übergeben werden muss, stattdessen der vollständige Abopfad übergeben werden.

Zusätzlich zu den SASL-Konfigurationen für den Kafka-Client sind die folgenden Einstellungen auch erforderlich, wenn die Kafka Consumer API zur Interaktion mit Pub/Sub Lite verwendet wird.

bootstrap.servers=REGION-kafka-pubsub.googleapis.com:443
group.id=unused

Ersetzen Sie REGION durch die Region, in der sich Ihr Pub/Sub Lite-Abo befindet.

Bevor Sie den ersten Pub/Sub Lite-Nutzerjob für ein bestimmtes Abo starten, können Sie einen Admin-Suchvorgang initiieren, um den anfänglichen Standort für den Nutzer festzulegen.

Wenn Sie Ihre Nutzer starten, kehren sie wieder zum aktuellen Offset im Nachrichtenrückstand zurück. Führen Sie sowohl die alten als auch die neuen Clients parallel aus, solange ihr Verhalten überprüft werden muss, und deaktivieren Sie dann die alten Privatclients.

Ersteller migrieren

Zusätzlich zu den SASL-Konfigurationen für den Kafka-Client ist Folgendes als Producer-Parameter erforderlich, wenn die Kafka Producer API zur Interaktion mit Pub/Sub Lite verwendet wird.

bootstrap.servers=REGION-kafka-pubsub.googleapis.com:443

Ersetzen Sie REGION durch die Region, in der sich Ihr Pub/Sub Lite-Thema befindet.

Nachdem Sie alle Nutzer des Themas migriert haben, um sie aus Pub/Sub Lite zu lesen, verschieben Sie den Erstellertraffic, um ihn direkt in Pub/Sub Lite zu schreiben.

Migrieren Sie die Producer-Clients nach und nach, um in das Pub/Sub Lite-Thema anstelle des Kafka-Themas zu schreiben.

Starten Sie die Producer-Clients neu, um neue Konfigurationen zu übernehmen.

Kafka Connect herunterfahren

Nachdem Sie alle Producer migriert haben, um direkt in Pub/Sub Lite zu schreiben, kopiert der Connector keine Daten mehr.

Sie können die Kafka Connect-Instanz herunterfahren.

Fehlerbehebung bei Kafka-Verbindungen

Da Kafka-Clients über ein spezielles Wire-Protokoll kommunizieren, können wir keine Fehlermeldungen für Fehler bei allen Anfragen ausgeben. Verlassen Sie sich auf die Fehlercodes, die in der Nachricht enthalten sind.

Sie können weitere Details zu Fehlern sehen, die im Client auftreten, wenn Sie die Logging-Ebene für das Präfix org.apache.kafka auf FINEST festlegen.

Niedriger Durchsatz und steigender Rückstand

Für einen niedrigen Durchsatz und einen steigenden Rückstand kann es mehrere Gründe geben. Ein Grund kann die unzureichende Kapazität sein.

Sie können Durchsatzkapazität auf Themenebene oder mithilfe von Reservierungen konfigurieren. Wenn eine unzureichende Durchsatzkapazität zum Abonnieren und Veröffentlichen konfiguriert ist, wird der entsprechende Durchsatz für das Abonnieren und Veröffentlichen gedrosselt.

Dieser Durchsatzfehler wird für Publisher durch den Messwert topic/flow_control_status und für Abonnenten vom Messwert subscription/flow_control_status signalisiert. Der Messwert bietet die folgenden Status:

  • NO_PARTITION_CAPACITY: Diese Meldung gibt an, dass das Durchsatzlimit pro Partition erreicht wurde.

  • NO_RESERVATION_CAPACITY: Diese Meldung gibt an, dass das Durchsatzlimit pro Reservierung erreicht wurde.

Sie können sich die Auslastungsdiagramme für das Publishing- und Subscribe-Kontingent für Themen oder Reservierungen ansehen und prüfen, ob die Auslastung bei oder nahe 100 % liegt.

Erhöhen Sie die Durchsatzkapazität des Themas oder der Reservierung, um dieses Problem zu beheben.

Fehlermeldung „Fehler bei der Themenautorisierung“

Für das Veröffentlichen mithilfe der Kafka API muss der Lite-Dienst-Agent die entsprechenden Berechtigungen zum Veröffentlichen im Pub/Sub Lite-Thema haben.

In Ihrem Client wird der Fehler TOPIC_AUTHORIZATION_FAILED angezeigt, wenn Sie nicht die erforderlichen Berechtigungen zum Veröffentlichen im Pub/Sub Lite-Thema haben.

Prüfen Sie, ob der Lite-Dienst-Agent für das Projekt in der Authentifizierungskonfiguration übergeben wurde, um das Problem zu beheben.

Fehlermeldung zu ungültigem Thema

Zum Abonnieren über die Kafka API muss der vollständige Abopfad an alle Stellen übergeben werden, an denen eine topic in der Kafka Consumer API erwartet wird.

Wenn du keinen korrekt formatierten Abopfad übergibst, wird in deinem Nutzerclient der Fehler INVALID_TOPIC_EXCEPTION angezeigt.

Ungültige Anfrage, wenn keine Reservierungen verwendet werden

Bei Verwendung der Kafka-Wire Protocol-Unterstützung muss allen Themen eine Reservierung zugeordnet sein, damit die Nutzung abgerechnet werden kann.