Von Kafka zu Pub/Sub Lite migrieren

Dieses Dokument ist nützlich, wenn Sie die Migration von selbstverwaltetem Apache Kafka zu Pub/Sub Lite in Betracht ziehen.

Übersicht über Pub/Sub Lite

Pub/Sub Lite ist ein Messaging-Dienst mit hohem Volumen, der für niedrige Betriebskosten entwickelt wurde. 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. Für regionale Lite-Themen gilt dasselbe SLA für die Verfügbarkeit wie für 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 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.

  • Message Daten, die über den Pub/Sub Lite-Dienst übertragen werden.

  • Thema Eine benannte Ressource, die für einen Feed von Nachrichten steht. In Pub/Sub Lite können Sie ein zonales oder regionales Lite-Thema erstellen. In regionalen Pub/Sub Lite-Themen werden Daten in zwei Zonen einer einzelnen Region gespeichert. Bei zonalen Pub/Sub Lite-Themen werden Daten nur innerhalb einer Zone repliziert.

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

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

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

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

Unterschiede zwischen Kafka und Pub/Sub Lite

Pub/Sub Lite ist zwar konzeptionell mit Kafka vergleichbar, aber ein anderes System mit einer eingeschränkteren API, die sich mehr auf die Datenaufnahme konzentriert. Für die Datenaufnahme und -verarbeitung sind diese Unterschiede zwar nicht relevant, es gibt aber einige Anwendungsfälle, in denen sie wichtig sind.

Kafka als Datenbank

Im Gegensatz zu Kafka unterstützt Pub/Sub Lite derzeit weder transaktionales Veröffentlichen noch die Log-Komprimierung. Die Idempotenz wird jedoch unterstützt. Diese Kafka-Funktionen sind nützlicher, wenn Sie Kafka als Datenbank und nicht als Messaging-System verwenden. Wenn Sie Kafka hauptsächlich als Datenbank verwenden, können Sie einen eigenen Kafka-Cluster ausführen oder eine verwaltete Kafka-Lösung wie Confluent Cloud verwenden. Wenn keine dieser Lösungen infrage kommt, können Sie auch eine horizontal skalierbare Datenbank wie Cloud Spanner verwenden.

Kafka-Streams

Kafka Streams ist ein Datenverarbeitungssystem, das auf Kafka basiert. Es ermöglicht zwar die Einschleusung von Kundenclients, erfordert aber Zugriff auf alle Administratoraktionen. Kafka Streams verwendet auch die transaktionalen Datenbankeigenschaften von Kafka zum Speichern interner Metadaten. Daher kann Pub/Sub Lite derzeit nicht für Kafka Streams-Anwendungen verwendet werden.

Apache Beam ist ein ähnliches System zur Verarbeitung von Streamingdaten, das in Kafka, Pub/Sub und Pub/Sub Lite eingebunden ist. Sie können Beam-Pipelines vollständig verwaltet mit Dataflow oder auf Ihren 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 Publishern und Abonnenten relevant sind, über Cloud Monitoring verwaltet, ohne dass eine zusätzliche Konfiguration erforderlich ist.

Kapazitätsverwaltung

Die Kapazität eines Kafka-Themas wird durch die Kapazität des Clusters bestimmt. Die Replikation, die Schlüsselkomprimierung und die Batch-Einstellungen bestimmen die Kapazität, die für die Bereitstellung eines bestimmten Themas im Kafka-Cluster erforderlich ist. Der Durchsatz eines Kafka-Themas wird durch die Kapazität der Maschinen begrenzt, auf denen die Broker ausgeführt werden. Für ein Pub/Sub Lite-Thema müssen Sie dagegen 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 den inhärenten oder konfigurierten Grenzwerten pro Partition.

Authentifizierung und Sicherheit

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

Kafka-Eigenschaften Pub/Sub Lite-Eigenschaften zuordnen

Kafka bietet viele Konfigurationsoptionen, mit denen sich die Themenstruktur, Limits und Broker-Eigenschaften steuern lassen. In diesem Abschnitt werden einige gängige Formate für die Datenaufnahme beschrieben, zusammen mit ihren Entsprechungen in Pub/Sub Lite. Da Pub/Sub Lite ein verwaltetes System ist, müssen Sie nicht viele Broker-Eigenschaften berücksichtigen.

Konfigurationseigenschaften für Themen

Kafka-Property Pub/Sub Lite-Property Beschreibung
retention.bytes Speicher pro Partition Alle Partitionen in einem Lite-Thema haben dieselbe konfigurierte Speicherkapazität. Die Gesamtspeicherkapazität eines Lite-Themas ist die Summe der Speicherkapazität aller Partitionen im Thema.
retention.ms Aufbewahrungsdauer für Nachrichten Die maximale Zeit, für die ein Lite-Thema Nachrichten speichert. Wenn Sie keinen Aufbewahrungszeitraum für Nachrichten angeben, speichert das Lite-Thema Nachrichten, bis Sie die Speicherkapazität überschreiten.
flush.ms, acks Nicht in Pub/Sub Lite konfigurierbar Veröffentlichungen werden erst bestätigt, wenn sie garantiert im replizierten Speicher gespeichert wurden.
max.message.bytes Nicht in Pub/Sub Lite konfigurierbar 3,5 MiB ist die maximale Nachrichtengröße, die an Pub/Sub Lite gesendet werden kann. Die Nachrichtengrößen werden wiederholbar berechnet.
message.timestamp.type Nicht in Pub/Sub Lite konfigurierbar Bei der Verwendung der Verbraucherimplementierung wird der Ereigniszeitstempel ausgewählt, sofern vorhanden. Andernfalls wird der Veröffentlichungszeitstempel verwendet. Bei der Verwendung von Beam sind sowohl Veröffentlichungs- als auch Ereigniszeitstempel verfügbar.

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

Konfigurationseigenschaften des Erstellers

Pub/Sub Lite unterstützt das Producer Wire Protocol. Einige Properties ändern das Verhalten der Cloud-Clientbibliotheken des Produzenten. Einige gängige Properties werden in der folgenden Tabelle beschrieben.

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

Erforderlich, wenn der Kafka-Producer oder eine entsprechende Bibliothek verwendet wird, die über das Wire-Protokoll kommuniziert.

batch.size In Pub/Sub Lite unterstützt Batch-Verarbeitung wird unterstützt. Für eine optimale Leistung wird ein Wert von 10 MiB empfohlen.
linger.ms In Pub/Sub Lite unterstützt Batch-Verarbeitung wird unterstützt. Der empfohlene Wert für diese Einstellung ist 50 ms.
max.request.size In Pub/Sub Lite unterstützt Der Server setzt ein Limit von 20 MiB pro Batch fest. Legen Sie diesen Wert in Ihrem Kafka-Client auf weniger als 20 MiB fest.
enable.idempotence In Pub/Sub Lite unterstützt
compression.type Nicht in Pub/Sub Lite unterstützt Sie müssen diesen Wert explizit auf none festlegen.

Eigenschaften der Nutzerkonfiguration

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

Kafka-Property Beschreibung
key.deserializer, value.deserializer

Erforderlich, wenn der Kafka-Consumer oder eine entsprechende Bibliothek verwendet wird, die über das Wire-Protokoll kommuniziert.

auto.offset.reset Diese Konfiguration wird nicht unterstützt und ist nicht erforderlich. Abos haben nach der Erstellung garantiert einen definierten Offset-Speicherort.
message.timestamp.type Der Veröffentlichungszeitstempel ist immer über Pub/Sub Lite verfügbar und nimmt auf Partitionsebene garantiert nicht ab. Ereigniszeitstempel sind möglicherweise vorhanden, wenn sie bei der Veröffentlichung der Nachricht angehängt wurden. Bei Verwendung von Dataflow sind sowohl Veröffentlichungs- als auch Ereigniszeitstempel gleichzeitig verfügbar.
max.partition.fetch.bytes, max.poll.records Legt ein weiches Limit für die Anzahl der Datensätze und Byte fest, die von poll()-Aufrufen und von internen Abrufanfragen zurückgegeben werden. Der Standardwert für „max.partition.fetch.bytes“ von 1 MiB kann den Durchsatz Ihres Clients begrenzen. Erhöhen Sie diesen Wert daher gegebenenfalls.

Funktionen von Kafka und Pub/Sub Lite vergleichen

In der folgenden Tabelle werden Features von Apache Kafka 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 dem 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 Funktionalität von Kafka selbst-gehostet wird und welche Funktionen von Pub/Sub Lite von Google verwaltet werden:

Feature Kafka Pub/Sub Lite
Verfügbarkeit Kafka an weiteren Standorten manuell bereitstellen Weltweit im Einsatz Weitere Informationen finden Sie unter Standorte.
Notfallwiederherstellung Eigene Sicherung und Replikation entwerfen und verwalten. Von Google verwaltet.
Infrastrukturverwaltung Virtuelle Maschinen (VMs) oder Maschinen manuell bereitstellen und betreiben. Sie müssen eine konsistente Versionierung und Patches beibehalten. Von Google verwaltet.
Kapazitätsplanung Speicher- und Rechenanforderungen im Voraus manuell planen Von Google verwaltet. Sie können die Rechenleistung und den Speicherplatz jederzeit erhöhen.
Support Rund um die Uhr verfügbare Mitarbeiter und Support

Kosten von Kafka und Pub/Sub Lite vergleichen

Die Kosten für die Schätzung und Verwaltung der Kosten in Pub/Sub Lite unterscheiden sich von den Kosten in Kafka. Die Kosten für einen lokalen Kafka-Cluster oder in der Cloud umfassen die Kosten für Maschinen, Laufwerk, Netzwerk, eingehende und ausgehende Nachrichten. Außerdem sind die allgemeinen Kosten für die Verwaltung und Wartung dieser Systeme und der zugehörigen Infrastruktur enthalten. Bei der Verwaltung eines Kafka-Clusters müssen Sie die Maschinen manuell aktualisieren, die Clusterkapazität planen und eine Notfallwiederherstellung implementieren, die eine umfassende Planung und Tests umfasst. Sie müssen alle diese verschiedenen Kosten zusammenfassen, um Ihre tatsächlichen Gesamtbetriebskosten (TCO) zu ermitteln.

Die Preise für Pub/Sub Lite umfassen die Reservierungskosten (veröffentlichte Bytes, abonnierte Bytes, vom Kafka-Proxy verarbeitete Bytes) und die Kosten für bereitgestellten Speicherplatz. Sie zahlen zusätzlich zu den Kosten für ausgehende Nachrichten genau für die Ressourcen, die Sie reservieren. Mit dem Preisrechner können Sie eine Schätzung Ihrer Kosten vornehmen.

Migrationsablauf

So migrieren Sie ein Thema aus einem Kafka-Cluster zu Pub/Sub Lite:

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.

    Mit dem Preisrechner für Pub/Sub Lite können Sie die Gesamtdurchsatzmesswerte Ihrer vorhandenen Kafka-Themen 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 jedes entsprechende Paar aus einer Verbrauchergruppe und einem Thema im Kafka-Cluster.

    Wenn du beispielsweise eine Verbrauchergruppe namens consumers erstellst, die Daten von topic-a und topic-b bezieht, musst du ein Abo consumers-a mit topic-a und ein Abo consumers-b mit topic-b verknüpfen. 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 der Version 3.1.0 oder höher mit Neuaufbau

Für Java-basierte Kafka-Clients der Version 3.1.0 oder höher, die auf der Instanz neu erstellt werden können, auf der der Kafka-Client ausgeführt wird:

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

  2. Mithilfe von com.google.cloud.pubsublite.kafka.ClientParameters.getParams kannst du die erforderlichen Parameter für die Authentifizierung bei Pub/Sub Lite abrufen.

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

    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, die Version 3.1.0 oder höher ausführen, ohne neu erstellt werden zu müssen

Für Kafka-Clients, die KIP-768 unterstützen, wird die OAUTHBEARER-Authentifizierung nur über die Konfiguration unterstützt. Dabei wird ein Python-Sidecar-Script verwendet. Dazu gehört die Java-Version 3.1.0 oder höher vom Januar 2022.

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

  1. Installieren Sie Python 3.6 oder höher.

    Weitere Informationen finden Sie unter 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 Seite google-auth.

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

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

    Der Principal 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-Abonnent“ (roles/pubsublite.subscriber) haben diese erforderliche Berechtigung. Fügen Sie diese Rollen Ihrem Hauptkonto hinzu.

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

    Die folgenden Parameter sind in Ihren Properties 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 verwendet wird.

Alle anderen Clients ohne Neuaufbau

Führe 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 Kunden verwenden möchten.

  2. Codieren Sie die Dienstkontodatei mit base64-encode, um sie als Authentifizierungsstring zu verwenden.

    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 für die 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 Ihres Pub/Sub-Projekts.

    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 Ihres Pub/Sub-Projekts.

Daten mit Kafka Connect klonen

Das Pub/Sub Lite-Team verwaltet eine Implementierung eines Kafka Connect-Sinks. 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 die Datenübertragung finden Sie unter Pub/Sub-Gruppen-Kafka-Connector.

Wenn die Partitionsaffinität durch den Migrationsprozess nicht beeinträchtigt werden soll, müssen das Kafka-Thema und das Pub/Sub Lite-Thema dieselbe Anzahl von Partitionen haben und die Eigenschaft pubsublite.ordering.mode muss auf KAFKA festgelegt sein. 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.

Verbraucher migrieren

Das Ressourcenmodell von Pub/Sub Lite unterscheidet sich von dem von Kafka. Im Gegensatz zu einer Zielgruppe ist ein Abo eine explizite Ressource, die genau einem Thema zugeordnet ist. Aufgrund dieses Unterschieds muss an allen Stellen in der Kafka Consumer API, an denen eine 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 erforderlich, wenn Sie die Kafka Consumer API verwenden, um mit Pub/Sub Lite zu interagieren.

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 du den ersten Pub/Sub Lite-Nutzerjob für ein bestimmtes Abo startest, kannst du einen Suchvorgang für Administratoren initiieren, um den Anfangsort für deinen Nutzer festzulegen. Du musst nicht auf das Ende des Vorgangs warten.

Wenn Sie Ihre Verbraucher starten, stellen sie eine Verbindung zum aktuellen Offset im Nachrichtenbacklog her. Führen Sie sowohl die alten als auch die neuen Clients so lange parallel aus, wie es dauert, ihr Verhalten zu überprüfen. Schalten Sie dann die alten Consumer-Clients aus.

Produzenten migrieren

Zusätzlich zu den SASL-Konfigurationen für den Kafka-Client ist bei der Verwendung der Kafka Producer API für die Interaktion mit Pub/Sub Lite auch die folgende Producer-Parameter erforderlich.

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 Verbraucher des Themas zu Pub/Sub Lite migriert haben, können Sie den Traffic Ihrer Publisher direkt in Pub/Sub Lite schreiben.

Migrieren Sie die Producer-Clients nach und nach so, dass sie in das Pub/Sub Lite-Thema statt in das Kafka-Thema schreiben.

Starte die Producer-Clients neu, damit sie die neuen Konfigurationen übernehmen.

Kafka Connect deaktivieren

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

Sie können die Kafka Connect-Instanz herunterfahren.

Fehlerbehebung bei Kafka-Verbindungen

Da Kafka-Clients über ein benutzerdefiniertes Wire-Protokoll kommunizieren, können wir nicht für alle Fehler bei Anfragen Fehlermeldungen bereitstellen. Berücksichtigen Sie die Fehlercodes, die im Rahmen der Nachricht gesendet wurden.

Wenn Sie mehr Details zu Fehlern sehen möchten, die im Client auftreten, legen Sie die Protokollierungsebene für das Präfix org.apache.kafka auf FINEST fest.

Niedriger Durchsatz und wachsender Backlog

Es kann mehrere Gründe dafür geben, dass der Durchsatz niedrig ist und sich der Backlog erhöht. Ein Grund dafür könnte eine unzureichende Kapazität sein.

Sie können die Durchsatzkapazität auf Themenebene oder mithilfe von Reservierungen konfigurieren. Wenn die Durchsatzkapazität für „subscribe“ und „publish“ nicht ausreicht, wird der entsprechende Durchsatz für „subscribe“ und „publish“ gedrosselt.

Dieser Durchsatzfehler wird für Publisher durch den Messwert topic/flow_control_status und für Abonnenten durch den Messwert subscription/flow_control_status angezeigt. 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 Nutzung für das Thema oder die Reservierung ansehen und prüfen, ob die Nutzung bei 100 % liegt oder diese Zahl fast erreicht.

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

Fehlermeldung „Autorisierung für das Thema fehlgeschlagen“

Damit über die Kafka API veröffentlicht werden kann, muss der Lite-Dienst-Agent die richtigen Berechtigungen zum Veröffentlichen im Pub/Sub Lite-Thema haben.

Wenn Sie nicht die richtigen Berechtigungen zum Veröffentlichen im Pub/Sub Lite-Thema haben, erhalten Sie in Ihrem Client die Fehlermeldung TOPIC_AUTHORIZATION_FAILED.

Prüfen Sie zur Behebung des Problems, ob der Lite-Dienst-Agent für das Projekt in der Authentifizierungskonfiguration übergeben wurde.

Fehlermeldung zu ungültigem Thema

Wenn du über die Kafka API abonnierst, musst du den vollständigen Abopfad an allen Stellen übergeben, an denen in der Kafka Consumer API ein topic erwartet wird.

Wenn du keinen korrekt formatierten Abopfad übergibst, erhältst du in deinem Consumer-Client die Fehlermeldung INVALID_TOPIC_EXCEPTION.

Ungültige Anfrage, wenn keine Reservierungen verwendet werden

Wenn Sie die Unterstützung des Kafka-Netzwerkprotokolls verwenden möchten, muss allen Themen eine Reservierung zugewiesen sein, damit die Nutzung in Rechnung gestellt werden kann.