Auf dieser Seite erfahren Sie mehr über Pub/Sub, warum Unternehmen Pub/Sub benötigen und welche Vorteile Pub/Sub im Vergleich zu ähnlichen Technologien bietet. 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. Sie 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. Bei Systemen, die über RPCs kommunizieren, 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 ereignisgesteuerte Anwendungsdesignmuster. Pub/Sub ermöglicht die Einbindung in viele Google-Systeme, 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 Zustandsverlaufs 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 um eine Verbindung zu Cloud Run-Funktionen herzustellen. 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 einen unternehmensweiten Echtzeit-Datenfreigabe-Bus erstellen, der Geschäftsereignisse, Datenbankaktualisierungen und Analyseereignisse in Ihrer gesamten Organisation verteilt.
Datenstreaming von Anwendungen, Diensten oder IoT-Geräten. Beispiel: Eine SaaS-Anwendung kann einen Echtzeitfeed von Ereignissen veröffentlichen. Alternativ kann ein Sensor in einem Zuhause Daten über eine Dataflow-Pipeline an Pub/Sub streamen, um sie in anderen Google Cloud-Produkten zu verwenden.
Verteilte Cache-Speicher aktualisieren. Zum Beispiel 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 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 die Standardauswahl 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. Sie bietet im Vergleich zu Pub/Sub eine geringere Zuverlässigkeit. Sie bietet entweder zonalen oder regionalen Themenspeicher. Zonale Lite-Themen werden nur in einer Zone gespeichert. Bei regionalen Lite-Themen werden Daten in einer Sekunde repliziert asynchron programmieren. Außerdem müssen Sie die Speicher- und Durchsatzkapazität in Pub/Sub Lite im Voraus bereitstellen und verwalten. Ziehen Sie Pub/Sub Lite nur für Anwendungen in Betracht, bei denen niedrige Kosten zusätzliche operative Arbeit und geringere Zuverlässigkeit rechtfertigen.
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.
Ein weiteres Feature, das Pub/Sub von Messaging-Middleware übernimmt, ist die Parallelität pro Nachricht, statt partitionbasierte Messaging-Funktionen. 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-Kommunikation im Vergleich zu Dienst-zu-Client-Kommunikation
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:
- Client-Server Um Nachrichten zwischen einer mobilen App/Web-App und einem Dienst zu senden, Produkte wie Firebase Realtime Database und Firebase Cloud Messaging:
- Asynchrone Dienstaufrufe Cloud Tasks verwenden
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. Dadurch wird die Verarbeitung und Datenintegration in BigQuery und Data Lakes in Cloud Storage ermöglicht. 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 von Monitoring- und Logging-Produkten.
- Authentifizierung und IAM Pub/Sub basiert auf einer standardmäßigen OAuth-Authentifizierung, die von anderen Google Cloud-Produkten verwendet wird. Außerdem unterstützt es detailliertes IAM und ermöglicht die Zugriffssteuerung für einzelne Ressourcen.
- 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 mit Cloud Functions oder anderen serverlosen Produkten implementieren.
- Orchestrierung: Pub/Sub kann deklarativ in mehrstufige serverlose Workflows eingebunden werden. 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 eine 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 Geschäftsanwendungen von Drittanbietern über eine transparente Standardschnittstelle in Ihre Integrationen eingebunden. 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 Nachrichtenfluss von einem einzelnen bestimmten Thema steht, der für die abonnierende Anwendung bereitgestellt werden soll. 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 eine Nachricht definieren kann. Beispielsweise könnten der Schlüssel
iana.org/language_tag
und der Werten
zu Nachrichten hinzugefügt werden, um sie für einen englischsprachigen Abonnenten als lesbar zu markieren. - Verlag 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 hiervon zu erhalten.
- Bestätigung (oder „ACK“). Ein Signal, das von einem Abonnenten an Pub/Sub gesendet wird, nachdem eine Nachricht erfolgreich empfangen wurde. Bestätigte Nachrichten werden aus der Abo-Nachrichtenwarteschlange entfernt.
- Push- und Pull-Methode 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 durch den Abonnent, der 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:
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.
Nächste Schritte
- Weitere Informationen finden Sie in der Pub/Sub-Kurzanleitung oder in der Pub/Sub Lite-Kurzanleitung.
- Lesen Sie die Architekturübersicht von Pub/Sub.
- Weitere Informationen zum Erstellen eines Pub/Sub-Messaging-Systems
- Informationen zu den Pub/Sub-Preisen
- Informieren Sie sich über Kontingente und Limits für Pub/Sub und Pub/Sub Lite.
- Lesen Sie die Versionshinweise zu Pub/Sub.
- Data Engineering mit Google Cloud-Diensten auf Qwiklabs entdecken