Cloud Managed Service for Apache Kafka oder Pub/Sub auswählen

In diesem Dokument erfahren Sie, wie Sie zwischen Pub/Sub und Google Cloud Managed Service for Apache Kafka wählen. Sowohl Pub/Sub als auch Managed Service for Apache Kafka sind horizontal skalierbare, verwaltete Messaging-Dienste, die Arbeitslasten mit hohem Volumen bewältigen können.

Dieses Dokument richtet sich an Entwickler, Architekten oder Entscheidungsträger, die einen verwalteten Dienst für die Verarbeitung von Streamingdaten und Messaging-Arbeitslasten suchen.

Es gibt mehrere Optionen für die Ausführung von Apache Kafka, darunter Partnerdienste und selbstverwaltete Open-Source-Software. Diese Optionen werden in diesem Dokument nicht behandelt.

Eine Übersicht über Pub/Sub-Konzepte finden Sie unter Übersicht über den Pub/Sub-Dienst.

Eine Übersicht über die Konzepte von Managed Service for Apache Kafka finden Sie unter Übersicht über Managed Service for Apache Kafka.

Bedienkomfort im Vergleich zur Portabilität

Die Entscheidung zwischen Pub/Sub und Managed Service for Apache Kafka ist ein Kompromiss zwischen einfacher Bedienung und Portabilität.

Einfache Bedienung von Pub/Sub

Pub/Sub ist ein vollständig verwalteter, serverloser und global verteilter Dienst, der die Infrastruktur von Google Cloud nutzt. Die Skalierung erfolgt automatisch, um Ihre Arbeitslast zu bewältigen. Sie müssen sich also nicht um die Verwaltung der Infrastruktur kümmern. Pub/Sub passt die Kapazität für einzelne Themen und Abos dynamisch an. Publisher und Abonnenten können unabhängig skaliert werden, nicht nur für verschiedene Themen und Abos, sondern auch innerhalb derselben.

Pub/Sub verschiebt Daten auch nahtlos zwischen mehreren Regionen. Publisher und Abonnenten können also eine Verbindung zu ihrer nächstgelegenen Region herstellen. Der Dienst übernimmt den Rest.

Managed Service for Apache Kafka kann auch große Datenmengen verarbeiten. Sie müssen jedoch die Clustergröße verwalten und mehrere andere Eigenschaften entsprechend den Skalierungsanforderungen Ihrer Themen konfigurieren. Am wichtigsten ist, dass Sie die Anzahl der Partitionen berücksichtigen, die Sie Ihren Themen zuweisen. Zu viele Partitionen können Ressourcen verschwenden. Zu wenige Partitionen können die Broker in Ihrem Kafka-Cluster überlasten. Sie müssen auch die Anzahl der Replikate berücksichtigen, die Sie pro Partition konfigurieren müssen, abhängig von Ihren Anforderungen an Latenz und Consumer-Fan-out.

Da eine Kafka-Bereitstellung an eine bestimmte Region gebunden ist, muss die Datenübertragung zwischen Regionen außerhalb des Dienstes erfolgen. Die kontinuierliche Integrität der Datenübertragung und die Erfüllung der Anforderungen der Themen in Ihrem Kafka-Cluster erfordert zusätzlichen Betriebsaufwand.

Portabilität von Managed Service for Apache Kafka

Die Autoscaling-Funktion und die globale Datenverteilung von Pub/Sub erleichtern den Betrieb, aber die Apache Kafka-APIs sind viel weiter verbreitet.

Wenn Sie planen, unabhängige Messaging-Systeme in verschiedenen lokalen oder Cloud-Anbieter-Umgebungen zu verwenden, kann Managed Service for Apache Kafka Ihnen eine einheitlichere Umgebung für Ihre Anwendungen bieten. Das liegt daran, dass Sie Kafka standardisieren und dieselbe API für die Kommunikation mit dem Kafka-Dienst in jeder Umgebung verwenden können.

Sie können Pub/Sub zwar als zentrales Messaging-System für alle Ihre Umgebungen verwenden, aber es ist wichtig, dass Sie sich daran erinnern, dass es sich um einen separaten Dienst mit einer eigenen API handelt. Wenn Sie für eine bestimmte Umgebung mit einem Messaging-System interagieren müssen, bietet Managed Service for Apache Kafka möglicherweise eine einheitlichere Entwicklungsumgebung.

Welcher Dienst ist der richtige für Sie?

Wenn eine konsistente Nutzung in verschiedenen Umgebungen von größter Bedeutung ist, sollten Sie Managed Service for Apache Kafka wählen. Wenn Sie sich auf eine minimale Konfiguration für das Skalieren von Arbeitslasten oder die Datenübertragung zwischen Regionen konzentrieren, bietet Pub/Sub einen überzeugenden Vorteil.

Wählen Sie Pub/Sub aus, wenn die folgenden Faktoren auf Ihre Anforderungen zutreffen:

  • Sie legen Wert auf eine einfache Bedienung von Google Cloud.

  • Sie benötigen eine skalierbare und serverlose Lösung mit minimalem Verwaltungsaufwand.

  • Sie haben unvorhersehbare oder sich ändernde Arbeitslastgrößen. Pub/Sub funktioniert auch dann gut, wenn der Durchsatz der Arbeitslast stabil ist.

  • Sie benötigen die Verarbeitungstracking pro Nachricht, um Pipeline-Effekte aufgrund einzelner fehlerhafter Nachrichten zu minimieren. Mit Pub/Sub und den integrierten Dead-Letter-Warteschlangen (DLQs) sowie der Unterstützung für die Verarbeitung von Nachrichten in beliebiger Reihenfolge bleibt Ihr System auch bei problematischen Nachrichten betriebsbereit.

  • Sie benötigen eine regionenübergreifende Datenaggregation.

  • Sie benötigen eine unabhängige Skalierung von Publisher und Abonnent.

Wählen Sie Managed Service for Apache Kafka, wenn die folgenden Faktoren Ihre Anforderungen beschreiben:

  • Die Portabilität zwischen mehreren Cloud-Anbietern oder lokalen Umgebungen ist entscheidend.

  • Sie haben vorhandene Kafka-Arbeitslasten, die Sie zuGoogle Cloudmigrieren möchten. Weitere Informationen finden Sie unter Auswahl basierend auf der vorhandenen Kafka-Einrichtung.

  • Sie haben ein gleichbleibendes Trafficvolumen ohne große Schwankungen.

  • Sie sind bereit, die Kapazitätsverwaltung zu übernehmen.

  • Sie benötigen eine Nachrichtenreihenfolge bei hohem Durchsatz pro Schlüssel.

  • Sie möchten das Event Sourcing-Muster mit einem Ereignisprotokoll als „Single Source of Truth“ verwenden.

Auswahl basierend auf der vorhandenen Kafka-Einrichtung

Wenn Sie bereits Kafka verwenden und eine verwaltete, sichere und zuverlässige Lösung auf Google Cloudsuchen, ist Managed Service for Apache Kafka die empfohlene Option.

Wenn Sie Kafka bereits verwenden und bereit sind, Ihre Anwendungen neu zu schreiben, um die Vorteile eines hochgradig skalierbaren, automatisch skalierenden globalen Dienstes zu nutzen, ist Pub/Sub eine gute Empfehlung. Informationen zur Migration von Kafka zu Pub/Sub finden Sie unter Von Kafka zu Pub/Sub migrieren.

Für neue Arbeitslasten oder Nutzer, die neu im Streaming auf Google Cloudsind, wird Pub/Sub aufgrund seiner Benutzerfreundlichkeit empfohlen. Wenn Sie Ihre bestehenden Kafka-Arbeitslasten mit minimalen Codeänderungen in die Cloud migrieren möchten, ist Managed Service for Apache Kafka die ideale Wahl.

Einbindung in Cloud-Produkte

Sowohl Google Managed Service for Apache Kafka als auch Pub/Sub lassen sich in verschiedene Google Cloud Dienste wie Dataflow, BigQuery und Cloud Storage einbinden.

Wenn Sie eine Multi-Cloud-Strategie benötigen und die Portabilität zwischen verschiedenen Cloudanbietern priorisieren, bietet Managed Service for Apache Kafka mehr Flexibilität. Das liegt daran, dass Kafka in mehr Systeme außerhalb von Google Cloud integriert werden kann als Pub/Sub.

Funktionsvergleich

Wenn die allgemeinen Entscheidungskriterien in den vorherigen Abschnitten nicht weiterhelfen, können Sie eine Auswahl basierend auf der Unterstützung bestimmter Funktionen treffen. Einen detaillierten Vergleich der beiden Produkte finden Sie in der folgenden Tabelle.

Funktion Pub/Sub Managed Service für Apache Kafka
Nutzerfreundlichkeit Einfachere Einrichtung und Wartung Höherer Betriebsaufwand erforderlich
Kostenmodell Pay-for-use Kapazitätsbasierte Abrechnung für Compute

Nutzungsabhängige Abrechnung für Netzwerk und Speicher.

Genau einmalige Verarbeitung Unterstützt die gleichzeitige Einzelübermittlung und eine starke Bestätigungssemantik. Unterstützt genau einmalige Nebeneffekte beim Lesen aus einem Thema und Schreiben in ein anderes.
Skalierung Nahtlose automatische Skalierung von KB bis GB pro Sekunde und Thema, die auch bei unvorhersehbaren Arbeitslasten funktioniert. Manuelle Konfiguration erforderlich
Bestellte Lieferung

Ermöglicht die Sortierung innerhalb von Schlüsseln.

1 MB/s Durchsatz pro detailliertem Reihenfolgeschlüssel

Ermöglicht die Sortierung von Angeboten innerhalb von Partitionen.

Sortierung pro Partition bis zur Durchsatzkapazität einer Partition.
Datenaufbewahrung 31 Tage Unbefristete Aufbewahrung
End-to-End-Latenz End-to-End-Latenz in der Regel in der Größenordnung von 100 Millisekunden Bei korrekt funktionierenden Abonnenten liegt sie in der Regel bei etwa 10 Millisekunden.
Open-Source-Kafka-Kompatibilität für Lift-and-Shift Nein Ja
Identity and Access Management und Sicherheit Ja Ja
Automatische Netzwerkkonfiguration Ja Ja
Multi-Cloud: identisch in allen Clouds Nein Ja
SLA zur Verfügbarkeit Ja Ja
SLA für die Datenebene Ja Derzeit ist dies nicht möglich.
Logging und Monitoring Ja Ja
Partitionsausgleich zwischen Brokern Nicht zutreffend Ja
Automatische Kapazität Pub/Sub passt die Kapazität dynamisch an die eingehende Nachrichtenrate und die Abonnentennachfrage an. Der Dienst verwaltet die zugrunde liegende Infrastruktur wie VMs und Speicher. Sie steuern Aspekte wie die Anzahl der Partitionen und den Replikationsfaktor.
Automatische Speicherverwaltung Ja Ja
Automatische Softwareupgrades Ja Ja
Kundensupport Ja Ja
Kafka Connect-Dienst Nicht zutreffend Mit von Nutzern bereitgestellten Connect-Diensten
Schemaunterstützung Ja Mit vom Nutzer bereitgestellter Schema-Registry
Kompatibel mit ks qIDB, KSQL Nein Ja
Unterstützung für OSS-Connectors Ja, für Kafka- und Flink-Connectors Nein
Integration mit Data Lake und Data Warehouse Ja Ja