Auf dieser Seite erfahren Sie, was Pub/Sub ist, warum Unternehmen Pub/Sub benötigen und welche Vorteile Pub/Sub im Vergleich zu ähnlichen Technologien bietet. Außerdem werden die wichtigsten Pub/Sub-Konzepte erläutert, darunter die Begriffe „Thema“, „Publisher“ und „Abonnent“.
Pub/Sub ist ein asynchroner, skalierbarer Messaging-Dienst, der Dienste, die Nachrichten erzeugen, von Diensten entkoppelt, die diese Nachrichten verarbeiten.
Pub/Sub ermöglicht die asynchrone Kommunikation von Diensten mit Latenzen im Bereich von 100 Millisekunden.
Pub/Sub wird für Streaminganalysen und Pipelines zur Datenintegration verwendet, um Daten aufzunehmen und zu verteilen. Es ist als nachrichtenorientierte Middleware für die Dienstintegration oder als Warteschlange zur Parallelisierung von Aufgaben gleichermaßen effektiv.
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, ohne zu berücksichtigen, wie oder wann diese Ereignisse verarbeitet werden. Pub/Sub liefert dann Ereignisse an alle Dienste, die darauf reagieren. In Systemen, die über RPCs kommunizieren, müssen Publisher darauf warten, dass 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 Endnutzer-Apps 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, Bigtable und Cloud Storage. Mit Pub/Sub können Sie Ereignisse von vielen Clients gleichzeitig erfassen.
Ereignisverteilung in Echtzeit. Sowohl rohe als auch verarbeitete Ereignisse können verschiedenen Anwendungen in Ihrem Team und Ihrer Organisation zur Echtzeitverarbeitung zur Verfügung gestellt werden. Pub/Sub unterstützt einen „Unternehmensereignisbus“ und ereignisgesteuerte Anwendungsdesignmuster. Mit Pub/Sub können Sie viele Google-Systeme einbinden, 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 erstellen.
Parallele Verarbeitung und Workflows Durch die Verwendung von Pub/Sub-Nachrichten um Cloud Run Functions-Funktionen zu verbinden, können Sie eine große Anzahl von 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 Formatieren von Bildern.
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. Eine SaaS-Anwendung kann beispielsweise einen Echtzeit-Feed mit Ereignissen veröffentlichen. Alternativ kann ein Sensor in einem Wohngebäude 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. Zum Beispiel können Instanzen eines Dienstes 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 Komponenten die Last automatisch übernehmen.
Arten von Pub/Sub-Diensten
Pub/Sub besteht aus zwei Diensten:
Pub/Sub-Dienst Dieser Messaging-Dienst ist für die meisten Nutzer und Anwendungen die Standardeinstellung. Er bietet die höchste Zuverlässigkeit und größte Anzahl an Integrationen sowie automatische Kapazitätsverwaltung. Pub/Sub garantiert die synchrone Replikation aller Daten in mindestens zwei Zonen und die Replikation nach dem Best-Effort-Prinzip in einer dritten zusätzlichen Zone.
Pub/Sub Lite-Dienst Ein separater, aber ähnlicher Messaging-Dienst, der als kostengünstige Option entwickelt wurde. Die Zuverlässigkeit ist geringer als bei Pub/Sub. Es bietet entweder zonalen oder regionalen Themenspeicher. Zonale Lite-Themen werden nur in einer Zone gespeichert. Bei regionalen Lite-Themen werden Daten asynchron in eine zweite Zone repliziert. Außerdem müssen Sie die Speicher- und Durchsatzkapazität in Pub/Sub Lite vorab 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 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 Features in herkömmlicher Messaging-Middleware wie Apache ActiveMQ und RabbitMQ. Beispiele für solche Funktionen sind Warteschlangen für unzustellbare Nachrichten und Filterung.
Ein weiteres Feature, das Pub/Sub von Messaging-Middleware übernimmt, ist die Parallelität pro Nachricht (statt partitionbasiert). Pub/Sub gibt einzelne Nachrichten an Abonnentenclients weiter und 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. Die Verarbeitung pro Nachricht maximiert die Parallelität der Abonnentenanwendungen und hilft, die Unabhängigkeit von Publishern und Abonnenten zu gewährleisten.
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: Verwenden Sie Produkte wie Firebase Realtime Database und Firebase Cloud Messaging, um Nachrichten zwischen einer mobilen oder Web-App und einem Dienst zu senden.
- Asynchrone Dienstaufrufe: Verwenden Sie Cloud Tasks.
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 Dataflow-Vorlagen und SQL. Dadurch wird die Verarbeitung und Datenintegration in BigQuery und Data Lakes in Cloud Storage ermöglicht. Dataflow-Vorlagen zum Verschieben von Daten von Pub/Sub in Cloud Storage, BigQuery und andere Produkte sind in den Pub/Sub- und Dataflow-UIs in derGoogle Cloud -Konsole verfügbar. Die Integration in Apache Spark ist auch verfügbar, insbesondere, wenn die Verwaltung mit Dataproc erfolgt. Die visuelle Zusammensetzung von Integrations- und Verarbeitungspipelines, die auf Spark und Dataproc ausgeführt werden, kann mit Data Fusion erreicht werden.
- 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 standardmäßige gRPC- und REST-Dienst-API-Technologien zusammen mit Clientbibliotheken für mehrere Sprachen.
- Trigger, Benachrichtigungen und Webhooks: Pub/Sub ermöglicht die Zustellung von Nachrichten auf Push-Basis 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. Die Big Data-Orchestrierung und die analytische Orchestrierung erfolgen häufig mit Cloud Composer, das Pub/Sub-Trigger unterstützt. Sie können Pub/Sub auch in Application Integration (Vorschau) einbinden, einer iPaaS-Lösung (Integration-Platform-as-a-Service). Application Integration bietet einen Pub/Sub-Trigger zum Auslösen oder Starten von Integrationen.
- Integration Connectors(Vorschau) Mit diesen 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 zur Verwendung in Ihren 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 von Daten und (optionalen) Attributen, die ein Publisher 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 Werten
zu Nachrichten hinzugefügt werden, um sie für einen englischsprachigen Abonnenten als lesbar zu markieren. - Publisher Eine Anwendung, die Nachrichten erstellt und an ein oder mehrere Themen 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 Nachrichtenwarteschlange des Abos entfernt.
- Push und Pull. Die beiden Methoden zur Nachrichtenzustellung. Ein Abonnent erhält Nachrichten entweder dadurch, dass Pub/Sub sie an den gewählten Endpunkt des Abonnenten weiterleitet ("Push"), oder dadurch, dass der Abonnent sie vom Dienst abruft ("Pull").
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 der Push-Zustellung ist die Bestätigung in der Antwort auf die Push-Anfrage implizit, während für die Pull-Zustellung ein separater RPC erforderlich ist.
Nächste Schritte
- Erste Schritte mit Pub/Sub oder Erste Schritte mit Pub/Sub Lite
- Lesen Sie die Architekturübersicht von Pub/Sub.
- Pub/Sub-Messaging-System erstellen
- Pub/Sub – Preise
- Informationen zu Kontingenten und Limits für Pub/Sub und Pub/Sub Lite
- Lesen Sie die Versionshinweise für Pub/Sub.
- Data Engineering mit Google Cloud -Diensten auf Qwiklabs kennenlernen