In diesem Dokument erfahren Sie, wie Sie zwischen Pub/Sub und dem von Google verwalteten Dienst für Apache Kafka wählen. Sowohl Pub/Sub als auch Managed Service for Apache Kafka sind horizontal skalierbare, verwaltete Messaging-Dienste, die mit hohen Arbeitslasten umgehen 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 Möglichkeiten, Apache Kafka auszuführen, darunter Partnerdienste und selbst verwaltete Open-Source-Software. Diese Optionen werden in diesem Dokument nicht behandelt.
Eine Übersicht über die 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 Managed Service for Apache Kafka.
Betriebsfreundlichkeit im Vergleich zur Portabilität
Die Entscheidung zwischen Pub/Sub und Managed Service for Apache Kafka ist ein Kompromiss zwischen Betriebsschlichtheit und Portabilität.
Betriebseinfache von Pub/Sub
Pub/Sub ist ein vollständig verwalteter, serverloser und global verteilter Dienst, der die Google Cloud -Infrastruktur nutzt. Die Infrastruktur wird automatisch skaliert, um Ihre Arbeitslast zu bewältigen. Sie müssen sich also nicht um die Verwaltung kümmern. Pub/Sub passt die Kapazität für einzelne Themen und Abos dynamisch an. Publisher und Abonnenten können unabhängig voneinander skalieren, nicht nur für verschiedene Themen und Abos, sondern auch innerhalb derselben.
Mit Pub/Sub lassen sich Daten auch nahtlos zwischen mehreren Regionen verschieben. Das bedeutet, dass Publisher und Abonnenten eine Verbindung zu ihrer nächstgelegenen Region herstellen können und der Dienst den Rest erledigt.
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 die Anzahl der Partitionen, 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 je nach Latenz- und Verbraucher-Fan-out-Anforderungen pro Partition konfigurieren müssen.
Da eine Kafka-Bereitstellung an eine bestimmte Region gebunden ist, muss die Datenübertragung außerhalb des Dienstes erfolgen, wenn Sie Daten zwischen Regionen verschieben. Die Aufrechterhaltung der ordnungsgemäßen Datenübertragung und die Erfüllung der Anforderungen der Topics in Ihrem Kafka-Cluster sind zusätzliche Aufgaben.
Portierbarkeit von Managed Service for Apache Kafka
Die automatische Skalierung und die globale Datenverteilung von Pub/Sub erleichtern die Nutzung, aber Apache Kafka APIs sind viel weiter verbreitet.
Wenn Sie unabhängige Messaging-Systeme in verschiedenen lokalen oder Cloud-Umgebungen verwenden möchten, bietet Managed Service for Apache Kafka eine einheitlichere Nutzung Ihrer Anwendungen. 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 in allen Ihren Umgebungen verwenden, aber es ist wichtig, daran zu denken, 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 der Managed Service for Apache Kafka möglicherweise eine einheitlichere Entwicklungsumgebung.
Welcher Dienst ist der richtige für Sie?
Wenn für Sie eine einheitliche Umgebung in verschiedenen Umgebungen von entscheidender Bedeutung ist, wählen Sie Managed Service for Apache Kafka. Wenn Sie eine minimale Konfiguration für die Skalierung von Arbeitslasten oder die regionenübergreifende Datenübertragung benötigen, bietet Pub/Sub einen überzeugenden Vorteil.
Wählen Sie Pub/Sub aus, wenn die folgenden Faktoren Ihre Anforderungen beschreiben:
Sie legen großen Wert auf einfache Betriebsabläufe in Google Cloud.
Sie benötigen eine skalierbare und serverlose Lösung mit minimalem Verwaltungsaufwand.
Die Arbeitslastgröße ist unvorhersehbar oder ändert sich. Pub/Sub funktioniert auch hervorragend, wenn der Arbeitslastdurchsatz stabil ist.
Sie benötigen eine Nachrichtenverarbeitung pro Nachricht, um Pipelineeffekte aufgrund einzelner fehlerhafter Nachrichten zu minimieren. Mit Pub/Sub, seinen integrierten Dead-Letter-Queues (DLQs) und der Unterstützung für die Verarbeitung von Nachrichten in falscher Reihenfolge bleibt Ihr System auch bei problematischen Nachrichten in Betrieb.
Sie benötigen eine interregionale Datenaggregation.
Sie benötigen eine unabhängige Skalierung für Publisher und Abonnenten.
Wählen Sie Managed Service for Apache Kafka aus, wenn die folgenden Faktoren Ihre Anforderungen beschreiben:
Die Portabilität zwischen mehreren Cloud-Anbietern oder On-Premise-Umgebungen ist entscheidend.
Sie haben vorhandene Kafka-Arbeitslasten, die Sie zuGoogle Cloudmigrieren möchten. Weitere Informationen finden Sie unter Anhand der vorhandenen Kafka-Einrichtung auswählen.
Sie haben ein gleichbleibendes Besucheraufkommen ohne große Schwankungen.
Sie sind bereit, die Kapazitätsverwaltung zu übernehmen.
Sie benötigen eine Nachrichtensortierung mit hohem Durchsatz pro Schlüssel.
Sie möchten das Ereignisquellenmuster 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 in Google Cloudsuchen, ist Managed Service for Apache Kafka die empfohlene Lösung.
Wenn Sie bereits Kafka verwenden und Ihre Anwendungen umschreiben möchten, um die Vorteile eines hoch 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 in Google Cloudsind, wird Pub/Sub aufgrund seiner Benutzerfreundlichkeit empfohlen. Wenn Sie Ihre vorhandenen Kafka-Arbeitslasten mit minimalen Codeänderungen in die Cloud verschieben 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 im Vergleich zu Pub/Sub mit einer größeren Bandbreite von Systemen außerhalb von Google Cloud integriert werden kann.
Funktionsvergleich
Wenn diese allgemeinen Entscheidungskriterien in den vorherigen Abschnitten nicht weiterhelfen, können Sie eine Entscheidung 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 for Apache Kafka |
---|---|---|
Nutzerfreundlichkeit | Einfachere Einrichtung und Wartung | Erfordert mehr Aufwand |
Kostenmodell | Nutzung abhängig von der Bezahlung | Rechenleistung nach Kapazität bezahlen Bezahlung nach Nutzung für Netzwerke und Speicher |
Genau einmalige Verarbeitung | Unterstützt die gleichzeitige Zustellung einer einzelnen Nachricht und eine starke Bestätigungssemantik. | Unterstützt Nebeneffekte vom Typ „Genau einmal“, wenn aus einem Thema gelesen und in ein anderes geschrieben wird. |
Skalierung | Nahtlose automatische Skalierung von KBs bis GBs 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 detaillierten Reihenfolgeschlüssel |
Ermöglicht die Sortierung 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 ordnungsgemäßen Abonnenten in der Regel etwa 10 Millisekunden. |
Open-Source-Kafka-Kompatibilität für Lift-and-Shift-Migrationen | Nein | Ja |
Identity and Access Management und Sicherheit | Ja | Ja |
Automatische Netzwerkkonfiguration | Ja | Ja |
Multi-Cloud: identisch in allen Clouds | Nein | Ja |
SLA für die Verfügbarkeit | Ja | Ja |
SLA für die Datenebene | Ja | Derzeit ist dies nicht möglich. |
Logging und Monitoring | Ja | Ja |
Partitionsausgleich über Broker hinweg | Nicht zutreffend | Ja |
Automatische Kapazität | Pub/Sub passt die Kapazität dynamisch anhand der Rate der eingehenden Nachrichten und der Nachfrage der Abonnenten an. | Der Dienst verwaltet die zugrunde liegende Infrastruktur wie VMs und Speicher. Sie können Aspekte wie die Anzahl der Partitionen und den Replikationsfaktor steuern. |
Automatische Speicherverwaltung | Ja | Ja |
Automatische Softwareupdates | Ja | Ja |
Kundensupport | Ja | Ja |
Kafka Connect-Dienst | Nicht zutreffend | Mit von Nutzern bereitgestellten Connect-Diensten |
Schemaunterstützung | Ja | Mit von Nutzern bereitgestellter Schema-Registry |
Kompatibel mit ks qIDB, KSQL | Nein | Ja |
Unterstützung für Open Source-Connectors | Ja, für Kafka- und Flink-Connectors | Nein |
Integration mit Data Lake und Data Warehouse | Ja | Ja |