Was sind Pub/Sub und Pub/Sub Lite?

Auf dieser Seite erfahren Sie mehr über Pub/Sub und warum Unternehmen Pub/Sub benötigen. Vorteile von Pub/Sub im Vergleich zu ähnlichen Technologien. Weitere Informationen zu den Kernfunktionen Pub/Sub-Konzepte, die die Begriffe Thema, Publisher und Abonnent umfassen.

Pub/Sub ist ein asynchroner und skalierbarer Messaging-Dienst, der die Nachrichten von Diensten generieren, die diese Nachrichten verarbeiten.

Pub/Sub ermöglicht es Diensten, asynchron zu kommunizieren. etwa 100 Millisekunden Latenzen.

Pub/Sub wird für Streaminganalysen und Pipelines zur Datenintegration verwendet, um Daten aufzunehmen und zu verteilen. Es ist genauso effektiv wie Messaging-orientierte 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, wie und wann diese Ereignisse verarbeitet werden sollen. Pub/Sub, dann stellt Ereignisse an alle Dienste bereit, die darauf reagieren. In Systemen, die kommunizieren, über RPCs müssen Publisher warten, bis Abonnenten die Daten erhalten. Sie können jedoch Die asynchrone Einbindung in Pub/Sub erhöht die Flexibilität, und Robustheit des Gesamtsystems.

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

Gängige Anwendungsfälle

  • Aufnahme von Nutzerinteraktionen und Serverereignissen. Um Nutzer zu verwenden Interaktionsereignisse von Endnutzer-Apps oder Serverereignissen aus Ihrem System, und leiten sie an Pub/Sub weiter. Sie können dann eine Streamverarbeitung wie Dataflow, das die Ereignisse an Datenbanken sendet. Beispiele für solche Datenbanken sind BigQuery, Bigtable und Cloud Storage Mit Pub/Sub können Sie Ereignisse aus vielen gleichzeitig Kundschaft zu gewinnen.

  • Ereignisverteilung in Echtzeit. Rohe oder verarbeitete Ereignisse können für verschiedene Anwendungen in Ihrem Team und Ihrem Unternehmen Zeit in der Verarbeitung. Pub/Sub unterstützt einen „Unternehmensereignisbus“ und ereignisgesteuerten Designmustern von Anwendungen zu entwickeln. Mit Pub/Sub können Sie ist in viele Google-Systeme eingebunden, die Ereignisse nach 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 des Statusverlaufs in BigQuery und anderen Datenspeichersystemen.

  • Parallele Verarbeitung und Workflows Sie können auf effiziente Weise viele Aufgaben unter mehreren Workern mithilfe von Pub/Sub-Nachrichten eine Verbindung zu Cloud Functions herstellen. Beispiele für solche Aufgaben ist das Komprimieren von Text. Dateien senden, E-Mail-Benachrichtigungen senden, KI-Modelle bewerten und Bilder.

  • Ereignisbus für Unternehmen Sie können unternehmensweite Echtzeitdaten Busfreigabe, Verteilung von Geschäftsereignissen, Datenbankaktualisierungen und Analysen unternehmensweit zu erfassen.

  • Datenstreaming von Anwendungen, Diensten oder IoT-Geräten. Beispiel: Eine SaaS-Anwendung kann einen Echtzeitfeed von Ereignissen veröffentlichen. Oder ein Sensor für zu Hause kann Daten zur Verwendung in anderen Google Cloud-Produkten an Pub/Sub streamen über eine Dataflow-Pipeline.

  • Verteilte Cache-Speicher aktualisieren. Eine Anwendung kann beispielsweise Entwertungsereignisse, um die IDs von geänderten Objekten zu aktualisieren.

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

Arten von Pub/Sub-Diensten

Pub/Sub besteht aus zwei Diensten:

  • Pub/Sub-Dienst: Dieser Messaging-Dienst ist der Standarddienst, für die meisten Nutzer und Anwendungen. Es bietet die höchste Zuverlässigkeit und mit der größten Integration sowie automatischer Kapazitätsverwaltung. Pub/Sub garantiert die synchrone Replikation aller Daten und Best-Effort-Replikation in eine dritte zusätzliche Zone.

  • Pub/Sub Lite-Dienst: Eine separate, aber ähnliche Botschaft zu niedrigeren Kosten entwickelt. Es bietet eine geringere Zuverlässigkeit im Vergleich zu Pub/Sub Sie bietet entweder zonalen oder regionalen Themenspeicher. Zonale Lite-Themen werden nur in einem . Bei regionalen Lite-Themen werden Daten in einer Sekunde repliziert asynchron programmieren. Außerdem kann Pub/Sub Lite erfordert, dass Sie Speicher- und Durchsatzkapazität vorab bereitstellen und verwalten. Nutzen Sie Pub/Sub Lite nur für Anwendungen, bei denen Niedrige Kosten rechtfertigen zusätzliche Arbeitsschritte und geringere Kosten Zuverlässigkeit.

Weitere Informationen zu den Unterschieden zwischen Pub/Sub und Pub/Sub Lite, siehe Pub/Sub oder Pub/Sub Lite auswählen

Pub/Sub mit anderen Messaging-Technologien vergleichen

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

Eine weitere Funktion, die Pub/Sub aus der Messaging-Middleware übernimmt, ist Nachrichtenparallelität anstelle von partitionsbasiertem Messaging. Pub/Sub-Leases Nachrichten an Abonnentenclients gesendet, verfolgt, 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. Verarbeitung pro Nachricht maximiert die Parallelität von Abonnentenanwendungen und sorgt dafür, Publisher-/Abonnenten-Unabhängigkeit.

Dienst-zu-Dienst- 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.

Einbindungen

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 Dataflow-Vorlagen und SQL, die die Verarbeitung und Datenintegration in BigQuery und Data Lakes in Cloud Storage. Dataflow zum Verschieben von Daten von Pub/Sub zu Cloud Storage, BigQuery und andere Produkte sind in Pub/Sub- und Dataflow-UIs in der Google Cloud Console Die Integration in Apache Spark ist auch verfügbar, insbesondere, wenn die Verwaltung mit Dataproc erfolgt. Visuelle Gestaltung der Integration und Verarbeitungspipelines, die auf Spark und Dataproc ausgeführt werden, können mit Data Fusion
  • Monitoring, Benachrichtigungen und Logging: Unterstützt durch Monitoring und Logging-Produkte.
  • Authentifizierung und IAM: Pub/Sub stützt sich auf ein Standard-OAuth Authentifizierung, die auch von anderen Google Cloud-Produkten verwendet wird, und unterstützt detailliertes IAM, und die Zugriffssteuerung für einzelne Ressourcen aktivieren.
  • APIs Pub/Sub verwendet die standardmäßige gRPC- und REST-Dienst-API Technologien und Clientbibliotheken für verschiedene Sprachen
  • Trigger, Benachrichtigungen und Webhooks: Pub/Sub bietet Push-basierte Zustellung von Nachrichten als HTTP POST-Anfragen an Webhooks. Sie können die Workflow-Automatisierung mithilfe von Cloud Functions implementieren. oder anderen serverlosen Produkten.
  • Orchestrierung: Pub/Sub kann in mehrstufige serverlose Lösungen eingebunden werden. Workflows deklarativ. Big Data und analytische Orchestrierung werden oft Cloud Composer, das Pub/Sub-Trigger unterstützt. Sie können Pub/Sub auch Anwendungsintegration (Preview) (Vorschau). Dies ist ein Integration-Platform-as-a-Service (iPaaS) Anwendung Die Integration bietet eine Pub/Sub-Trigger um Integrationen auszulösen oder zu starten.
  • Integration Connectors.(Vorschau) Über diese Connectors können Sie Verbindungen zu verschiedenen Datenquellen herstellen. Mit Connectors werden sowohl Google Cloud-Dienste als auch Unternehmensanwendungen von Drittanbietern über eine transparente, standardisierte Oberfläche auf Ihre Integrationen zugreifen. Für Pub/Sub können Sie eine Pub/Sub-Verbindung erstellen. zur Verwendung in Ihren Integrationen.

Wichtige Konzepte

  • Thema: Eine benannte Ressource, an die Nachrichten von Publishern gesendet werden.
  • Abo: Eine benannte Ressource, die den Nachrichtenstrom von für ein einzelnes, spezifisches Thema. Weitere Informationen zu Abos und zur Semantik der Nachrichtenzustellung finden Sie im Abonnentenleitfaden.
  • Nachricht. Die Kombination aus Daten und (optionalen) Attributen, die ein an ein Thema sendet und schließlich an Abonnenten zugestellt wird.
  • Nachrichtenattribut. Ein Schlüssel/Wert-Paar, das ein Publisher für ein angezeigt. 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.
  • Verlag oder Webpublisher: Eine Anwendung, die Nachrichten für ein oder mehrere Themen erstellt und an diese sendet.
  • Abonnent: Eine Anwendung mit einem Abo für ein oder mehrere Themen, um Nachrichten von diesem Thema zu empfangen.
  • Bestätigung (oder „ack“). Signal, das von einem Abonnenten an Pub/Sub gesendet wird, hat erfolgreich eine Nachricht erhalten. Bestätigte Nachrichten werden aus der Abo-Nachrichtenwarteschlange entfernt.
  • Drücken und Ziehen. Die beiden Methoden der Nachrichtenzustellung. Ein Abonnent erhält Nachrichten entweder dadurch, dass Pub/Sub sie per Push an den Abonnenten sendet. am ausgewählten Endpunkt oder dadurch, dass der Abonnent sie aus dem Dienst abruft.

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 Push-Zustellung ist die Bestätigung implizit in der Antwort auf für die Push-Anfrage. Für die Pull-Zustellung ist ein separater RPC erforderlich.

Nachrichtenlebenszyklus

Nächste Schritte