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 verschiedene 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.

Einfacher Betrieb 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.

Einfacher Betrieb 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. Bei Pub/Sub wird die Kapazität für einzelne Themen und Abos dynamisch angepasst. Publisher und Abonnenten können unabhängig voneinander skalieren, nicht nur bei verschiedenen Themen und Abos, sondern auch innerhalb derselben.

Pub/Sub verschiebt Daten auch nahtlos zwischen mehreren Regionen. Publisher und Abonnenten können also eine Verbindung zur nächstgelegenen Region herstellen. Der Dienst kümmert sich um 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 für eine einheitlichere Nutzung Ihrer Anwendungen sorgen. Das liegt daran, dass Sie Kafka standardisieren und dieselbe API verwenden können, um in jeder Umgebung mit dem Kafka-Dienst zu kommunizieren.

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 mit einem Messaging-System für eine bestimmte Umgebung 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 Umgebung in verschiedenen Umgebungen von größter Bedeutung ist, sollten Sie Managed Service for Apache Kafka wählen. Wenn Sie sich auf die 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 eignet sich auch hervorragend, wenn der Durchsatz der Arbeitslast stabil ist.

  • Sie benötigen ein Tracking der Verarbeitung pro Nachricht, um die Auswirkungen von einzelnen fehlerhaften Nachrichten auf die Pipeline zu minimieren. Mit den integrierten Dead-Letter-Warteschlangen (DLQs) und der Unterstützung für die Verarbeitung von Nachrichten in beliebiger Reihenfolge in Pub/Sub bleibt Ihr System auch bei problematischen Nachrichten betriebsbereit.

  • Sie benötigen eine regionsü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 auf Ihre Anforderungen zutreffen:

  • Die Portabilität zwischen mehreren Cloud-Anbietern oder lokalen Umgebungen ist von entscheidender Bedeutung.

  • 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 Wahl.

Wenn Sie Kafka bereits verwenden und bereit sind, Ihre Anwendungen neu zu schreiben, um die Vorteile eines hochgradig skalierbaren, automatisch skalierten 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 Cloud-Anbietern priorisieren, bietet Managed Service for Apache Kafka mehr Flexibilität. Das liegt daran, dass Kafka in eine größere Anzahl von Systemen 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 Erfordert mehr operativen Aufwand
Kostenmodell Nutzungsabhängige Abrechnung Zahlung für Rechenkapazität

Nutzungsabhängige Abrechnung für Netzwerk und Speicher.

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

Dadurch wird innerhalb von Schlüsseln sortiert.

1 MB/s Durchsatz pro detailliertem Sortierschlüssel

Bietet die Sortierung innerhalb von Partitionen an.

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 In der Regel etwa 10 Millisekunden für gut funktionierende Abonnenten.
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 den Bedarf der Abonnenten 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

Apache Kafka® ist eine eingetragene Marke der Apache Software Foundation oder ihrer verbundenen Unternehmen in den USA und/oder anderen Ländern.