Was ist Pub/Sub?

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Mit Pub/Sub können Dienste asynchron mit einer Latenz von 100 Millisekunden kommunizieren.

Pub/Sub wird für Streaminganalysen und Pipelines zur Datenintegration verwendet, um Daten aufzunehmen und zu verteilen. Er ist ebenso effektiv wie eine nachrichtenorientierte Middleware für die Dienstintegration oder als Warteschlange zum Parallelisieren von Aufgaben.

Mit Pub/Sub können Sie Systeme für Ereignisersteller und -nutzer erstellen, die als Publisher und Abonnenten bezeichnet werden. Publisher kommunizieren asynchron mit Abonnenten durch Broadcast-Ereignisse und nicht durch synchrone Remote-Prozeduraufrufe (RPCs).

Publisher senden Ereignisse an den Pub/Sub-Dienst, unabhängig davon, wie oder wann diese Ereignisse verarbeitet werden sollen. Pub/Sub sendet dann Ereignisse an alle Dienste, die darauf reagieren. In Systemen, die über RPCs kommunizieren, müssen Verlage oder Webpublisher warten, bis Abonnenten die Daten erhalten. Die asynchrone Integration in Pub/Sub erhöht jedoch die Flexibilität und Robustheit des Gesamtsystems.

Erste Schritte mit Pub/Sub finden Sie in der Kurzanleitung zur Verwendung der Google Cloud Console. Eine umfassendere Einführung finden Sie unter Pub/Sub-Messaging-System erstellen.

Gängige Anwendungsfälle

  • Nutzerinteraktion und Serverereignisse aufnehmen Wenn Sie Nutzerinteraktionsereignisse aus Endnutzeranwendungen oder Serverereignisse aus Ihrem System verwenden möchten, können Sie sie an Pub/Sub weiterleiten. Anschließend können Sie ein Streamverarbeitungstool wie Dataflow verwenden, das die Ereignisse an Datenbanken sendet. Beispiele für solche Datenbanken sind BigQuery, Cloud Bigtable und Cloud Storage. Mit Pub/Sub können Sie Ereignisse von vielen Clients gleichzeitig erfassen.

  • Ereignisverteilung in Echtzeit. Ereignisse, Rohdaten oder verarbeitete Daten können mehreren Anwendungen in Ihrem Team und Ihrer Organisation zur Echtzeitverarbeitung zur Verfügung gestellt werden. Pub/Sub unterstützt einen „Unternehmensereignisbus“ und ereignisgesteuerte Anwendungsdesignmuster. Pub/Sub ermöglicht die Einbindung in viele Google-Systeme, die Ereignisse in Pub/Sub exportieren.

  • Daten zwischen Datenbanken replizieren. Pub/Sub wird häufig verwendet, um Änderungsereignisse aus Datenbanken zu verteilen. Mit diesen Ereignissen können Sie eine Ansicht des Datenbankstatus und -verlaufs in BigQuery und anderen Datenspeichersystemen erstellen.

  • Parallele Verarbeitung und Workflows Mit Pub/Sub-Nachrichten zum Herstellen einer Verbindung zu Cloud Functions können Sie viele Aufgaben effizient auf mehrere Worker verteilen. Beispiele für solche Aufgaben sind das Komprimieren von Textdateien, das Senden von E-Mail-Benachrichtigungen, das Bewerten von KI-Modellen und das Neuformatieren von Bildern.

  • Ereignisbus für Unternehmen Sie können einen unternehmensweiten Bericht zur Datenfreigabe erstellen, mit dem Geschäftsereignisse, Datenbankaktualisierungen und Analyseereignisse in Ihrer Organisation verteilt werden.

  • Datenstreaming von Anwendungen, Diensten oder IoT-Geräten. Eine SaaS-Anwendung kann beispielsweise einen Echtzeitfeed von Ereignissen veröffentlichen. Ein Wohnsensor kann Daten an Pub/Sub streamen, um sie in anderen Google Cloud-Produkten über eine Dataflow-Pipeline zu verwenden.

  • Verteilte Cache-Speicher aktualisieren. Beispielsweise kann eine Anwendung Entwertungsereignisse veröffentlichen, um die IDs von geänderten Objekten zu aktualisieren.

  • Load-Balancing für Zuverlässigkeit. Beispielsweise können Instanzen eines Dienstes in Compute Engine in mehreren Zonen bereitgestellt werden, aber ein gemeinsames Thema abonnieren. Wenn der Dienst in einer beliebigen Zone fehlschlägt, können die anderen die Last automatisch aufnehmen.

Arten von Pub/Sub-Diensten

Pub/Sub besteht aus zwei Diensten:

  • Pub/Sub-Dienst Dieser Messaging-Dienst ist die Standardoption für die meisten Nutzer und Anwendungen. Es bietet die höchste Zuverlässigkeit und den größten Umfang an Integrationen sowie eine automatische Kapazitätsverwaltung. Pub/Sub garantiert die synchrone Replikation aller Daten in mindestens zwei Zonen und die Best-Effort-Replikation in einer dritten zusätzlichen Zone.

  • Pub/Sub Lite-Dienst Ein separater, aber ähnlicher Messaging-Dienst, der zu geringeren Kosten entwickelt wurde. Es bietet im Vergleich zu Pub/Sub eine geringere Zuverlässigkeit. Er bietet zonalen oder regionalen Themenspeicher. Zonale Lite-Themen werden nur in einer Zone gespeichert. In regionalen Lite-Themen werden Daten asynchron in eine zweite Zone repliziert. Außerdem müssen Sie für Pub/Sub Lite die Speicher- und Durchsatzkapazität vorab bereitstellen und verwalten. Ziehen Sie Pub/Sub Lite nur für Anwendungen in Betracht, bei denen ein geringer Betrieb eine zusätzliche operative Arbeit und eine geringere Zuverlässigkeit rechtfertigt.

Weitere Informationen zu den Unterschieden zwischen Pub/Sub und Pub/Sub Lite finden Sie unter Pub/Sub oder Pub/Sub Lite auswählen.

Pub/Sub mit anderen Messaging-Technologien vergleichen

Pub/Sub kombiniert die horizontale Skalierbarkeit von Apache Kafka und Pulsar mit Funktionen in traditioneller Messaging-Middleware wie Apache ActiveMQ und RabbitMQ. Beispiele für solche Funktionen sind Warteschlangen für unzustellbare Nachrichten und Filter.

Eine weitere Funktion, die Pub/Sub von Messaging-Middleware anwendet, ist die parallele Kommunikation pro Nachricht anstelle von Partitionsbasiertem Messaging. Pub/Sub gibt „Leases“ einzelner Nachrichten an Abonnentenclients durch und verfolgt dann, ob eine bestimmte Nachricht erfolgreich verarbeitet wurde.

Im Gegensatz dazu verwenden andere horizontal skalierbare Nachrichtensysteme Partitionen für die horizontale Skalierung. Dadurch werden Abonnenten gezwungen, Nachrichten in jeder Partition der Reihe nach zu verarbeiten. Die Anzahl der gleichzeitigen Clients wird auf die Anzahl der Partitionen begrenzt. Die Verarbeitung pro Nachricht maximiert die Parallelität der Abonnentenanwendungen und sorgt für Unabhängigkeit von Verlagen und Abonnenten.

Dienst-zu-Dienst-Kommunikation und Dienst-zu-Client-Kommunikation vergleichen

Pub/Sub ist für die Dienst-zu-Dienst-Kommunikation gedacht und nicht für die Kommunikation mit Endnutzer- oder IoT-Clients. Andere Muster werden von anderen Produkten besser unterstützt:

Sie können eine Kombination dieser Dienste verwenden, um folgende Muster zu erstellen: Client -> Dienste -> Datenbank. Weitere Informationen finden Sie beispielsweise in der Anleitung Pub/Sub-Nachrichten über WebSockets streamen.

Integrationen

Pub/Sub bietet viele Integrationen in andere Google Cloud-Produkte, um ein Nachrichtensystem mit komplettem Funktionsumfang zu erstellen:

  • Streamverarbeitung und Datenintegration Wird von Dataflow unterstützt, einschließlich Vorlagen und SQL für Dataflow, die die Verarbeitung und Datenintegration in BigQuery und Data Lakes in Cloud Storage ermöglichen Dataflow-Vorlagen zum Verschieben von Daten von Pub/Sub zu Cloud Storage, BigQuery und anderen Produkten sind in der Benutzeroberfläche von Pub/Sub und Dataflow in der Google Cloud Console verfügbar. Die Integration in Apache Spark ist auch verfügbar, insbesondere, wenn die Verwaltung mit Dataproc erfolgt. Die visuelle Zusammensetzung von Pipelines, die auf Spark und Dataproc ausgeführt werden, kann mit Data Fusion erreicht werden.
  • Monitoring, Benachrichtigungen und Logging. Wird von Monitoring- und Logging-Produkten unterstützt.
  • Authentifizierung und IAM Pub/Sub basiert auf einer standardmäßigen OAuth-Authentifizierung, die von anderen Google Cloud-Produkten verwendet wird, und unterstützt die detaillierte IAM-Funktion. Dadurch wird die Zugriffssteuerung für einzelne Ressourcen aktiviert.
  • APIs: Pub/Sub verwendet Standard-API-Technologien für gRPC und REST Service sowie Clientbibliotheken für mehrere Sprachen.
  • Trigger, Benachrichtigungen und Webhooks: Pub/Sub bietet Push-basierte Nachrichtenzustellung als HTTP POST-Anfragen an Webhooks. Sie können die Workflowautomatisierung mit Cloud Functions oder anderen serverlosen Produkten implementieren.
  • Orchestrierung. Pub/Sub kann deklarativ in serverlose mehrstufige Workflows eingebunden werden. Big Data und Analyseorchestrierung werden oft mit Cloud Composer ausgeführt, das Pub/Sub-Trigger unterstützt. Sie können Pub/Sub auch in die Anwendungsintegration (Vorschau) einbinden. Dies ist eine Integration-as-a-Service-Lösung (iPaaS). Die Anwendungsintegration bietet einen Pub/Sub-Trigger, mit dem Integrationen ausgelöst oder gestartet werden.
  • Integrations-Connectors (Vorschau) Mit diesen Connectors können Sie eine Verbindung zu verschiedenen Datenquellen herstellen. Sowohl Connectors- als auch Google Cloud-Dienste und Unternehmensanwendungen von Drittanbietern sind über eine transparente Standardschnittstelle für Ihre Integrationen verfügbar. Für Pub/Sub können Sie eine Pub/Sub-Verbindung für Ihre Integrationen erstellen.

Wichtige Konzepte

  • Thema: Eine benannte Ressource, an die Nachrichten von Publishern gesendet werden.
  • Abo: Eine benannte Ressource, die für den Nachrichtenstream aus einem einzelnen, bestimmten Thema steht, der an die abonnierende Anwendung gesendet werden soll. Weitere Informationen zu Abos und zur Semantik der Nachrichtenzustellung finden Sie im Abonnentenleitfaden.
  • Nachricht: Die Kombination von Daten und (optionalen) Attributen, die ein Verlag oder Webpublisher an ein Thema sendet und die schließlich für Abonnenten bereitgestellt wird.
  • Nachrichtenattribut. Ein Schlüssel/Wert-Paar, das ein Publisher für eine Nachricht definieren kann. Beispielsweise könnten der Schlüssel iana.org/language_tag und der Wert en zu Nachrichten hinzugefügt werden, um sie für einen englischsprachigen Abonnenten als lesbar zu markieren.
  • Publisher: Eine Anwendung, die Nachrichten zu einem einzelnen oder mehreren Themen erstellt und sendet.
  • Abonnent:in Eine Anwendung mit einem Abo für ein einzelnes oder mehrere Themen, um Nachrichten von diesem Thema zu erhalten.
  • Danksagung bzw. „Bestätigung“. Ein Signal, das von einem Abonnenten an Pub/Sub gesendet wird, nachdem es eine Nachricht erhalten hat. Bestätigte Nachrichten werden aus der Warteschlange für Abonachrichten entfernt.
  • Drücken und ziehen Die beiden Methoden der Nachrichtenzustellung. Ein Abonnent empfängt Nachrichten entweder durch Veröffentlichen durch Pub/Sub an den vom Abonnenten ausgewählten Endpunkt oder durch das Abrufen durch den Abonnenten über den Dienst.

Publisher-Abonnenten-Beziehungen können 1:n-Beziehungen (Fan-Out), n:1-Beziehungen (Fan-in) und n:n-Beziehungen sein, wie im folgenden Diagramm dargestellt:

Publisher-Abonnenten-Beziehungen

Das folgende Diagramm zeigt, wie eine Nachricht von einem Publisher an einen Abonnenten übergeben wird. Bei der Push-Zustellung ist die Bestätigung implizit in der Antwort auf die Push-Anfrage, während für die Pull-Zustellung ein separater RPC erforderlich ist.

Nachrichtenlebenszyklus

Nächste Schritte