Pub/Sub ist ein asynchroner, skalierbarer Messaging-Dienst, der Dienste, die Nachrichten erzeugen, von Diensten entkoppelt, die diese Nachrichten verarbeiten.
Pub/Sub ermöglicht Diensten eine asynchrone Kommunikation mit Latenzen, die in der Regel im Bereich von 100 Millisekunden liegen.
Pub/Sub wird für Streaminganalysen und Datenintegrationspipelines verwendet, um Daten zu laden und zu verteilen. Es ist gleichermaßen effektiv als nachrichtenorientierte Middleware für die Dienstintegration oder als Warteschlange zur Parallelisierung 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 liefert die Ereignisse dann an alle Dienste, die darauf reagieren müssen. In Systemen, die über RPCs kommunizieren, müssen Publisher warten, bis Abonnenten die Daten erhalten haben. Die asynchrone Integration in Pub/Sub erhöht jedoch die Flexibilität und Robustheit des Gesamtsystems.
Informationen zu den ersten Schritten mit Pub/Sub finden Sie in der Kurzanleitung: Google Cloud Console verwenden. 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 liefert. 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. Ereignisse, ob roh oder verarbeitet, können mehreren Anwendungen in Ihrem Team und Ihrer Organisation zur Echtzeitverarbeitung zur Verfügung gestellt werden. Pub/Sub unterstützt einen „Enterprise Event Bus“ und ereignisgesteuerte Anwendungsmuster. Mit Pub/Sub können Sie viele Systeme einbinden, die Ereignisse in Pub/Sub exportieren.
- Daten zwischen Datenbanken replizieren. Pub/Sub wird häufig verwendet, um Änderungsereignisse aus Datenbanken zu verteilen. Diese Ereignisse können verwendet werden, um eine Ansicht des Datenbankstatus und des Statusverlaufs in BigQuery und anderen Datenspeichersystemen zu erstellen.
- Parallele Verarbeitung und Workflows Sie können viele Aufgaben effizient auf mehrere Worker verteilen, indem Sie Pub/Sub-Nachrichten für die Kommunikation mit den Workern verwenden. 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.
- Enterprise-Ereignisbus. Sie können einen unternehmensweiten Bus für die Echtzeit-Datenweitergabe erstellen, um Geschäftsereignisse, Datenbankaktualisierungen und Analyseereignisse in Ihrem Unternehmen zu verteilen.
- Datenstreaming von Anwendungen, Diensten oder IoT-Geräten. Beispielsweise kann eine SaaS-Anwendung einen Echtzeitfeed mit Ereignissen veröffentlichen. Oder ein Sensor in einem Wohngebäude kann Daten an Pub/Sub streamen, um sie über eine Datenverarbeitungspipeline in anderen Google Cloud -Produkten zu verwenden.
- Verteilte Cache-Speicher aktualisieren. Eine Anwendung kann beispielsweise 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 mehreren Zonen in Compute Engine bereitgestellt werden, aber ein gemeinsames Thema abonnieren. Wenn der Dienst in einer Zone ausfällt, können die anderen die Last automatisch übernehmen.
Pub/Sub mit anderen Messaging-Technologien vergleichen
Pub/Sub kombiniert die horizontale Skalierbarkeit von Apache Kafka und Pulsar mit Funktionen, die in Messaging-Middleware wie Apache ActiveMQ und RabbitMQ zu finden sind. Beispiele für solche Features sind Warteschlangen für unzustellbare Nachrichten und Filterung.
Ein weiteres Feature, das Pub/Sub von Messaging-Middleware übernimmt, ist die Parallelität pro Nachricht anstelle von partitionsbasiertem Messaging. Pub/Sub „least“ einzelne Nachrichten an Abonnentenclients 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 von Abonnentenanwendungen und trägt dazu bei, die Unabhängigkeit von Publishern und Abonnenten zu gewährleisten.
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:
- Client-Server: Wenn Sie Nachrichten zwischen einer mobilen oder Web-App und einem Dienst senden möchten, verwenden Sie Produkte wie Firebase Realtime Database und Firebase Cloud Messaging.
- 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 Messaging-System mit vollem Funktionsumfang zu erstellen:
- Streamverarbeitung und Datenintegration. Unterstützt von Dataflow, einschließlich Dataflow-Vorlagen und SQL, die die Verarbeitung und Datenintegration in BigQuery und Data Lakes in Cloud Storage ermöglichen. Dataflow-Vorlagen zum Verschieben von Daten von Pub/Sub nach Cloud Storage, BigQuery und anderen Produkten sind in den Pub/Sub- und Dataflow-UIs in derGoogle Cloud Console verfügbar. Die Integration in Apache Spark, insbesondere bei der Verwaltung mit Managed Service for Apache Spark, ist ebenfalls verfügbar. Mit Data Fusion können Sie Integrations- und Verarbeitungspipelines, die auf Spark und Managed Service for Apache Spark ausgeführt werden, visuell erstellen.
- Monitoring, Benachrichtigungen und Logging Wird von Monitoring- und Logging-Produkten unterstützt.
- Authentifizierung und IAM. Pub/Sub verwendet eine Standard-OAuth-Authentifizierung, die auch von anderen Google Cloud -Produkten verwendet wird, und unterstützt detailliertes IAM, was die Zugriffssteuerung für einzelne Ressourcen ermöglicht.
- APIs Pub/Sub verwendet standardmäßige gRPC- und REST-Dienst-API-Technologien sowie Clientbibliotheken für mehrere Sprachen.
- Trigger, Benachrichtigungen und Webhooks Pub/Sub bietet eine Push-basierte Zustellung von Nachrichten 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 mehrstufige serverlose Workflows eingebunden werden. Big-Data- und Analyseorchestrierung wird häufig mit Managed Airflow durchgeführt, das Pub/Sub-Trigger unterstützt. Sie können Pub/Sub auch in Application Integration einbinden, eine iPaaS-Lösung (Integration-Platform-as-a-Service). Application Integration bietet einen Pub/Sub-Trigger zum Auslösen oder Starten von Integrationen.
- Integration Connectors Mit diesen Connectors können Sie Verbindungen zu verschiedenen Datenquellen herstellen. Mit Connectors werden sowohlGoogle Cloud -Dienste als auch Geschäftsanwendungen von Drittanbietern über eine transparente Standardschnittstelle in Ihre Integrationen eingebunden. Für Pub/Sub können Sie einen Pub/Sub-Connector zur Verwendung in Ihren Integrationen erstellen.
Nächste Schritte
- Kurzanleitung für Pub/Sub
- Grundlagen des Pub/Sub-Dienstes
- Pub/Sub-Messaging-System erstellen
- Pub/Sub-Preise
- Informationen zu Kontingenten und Limits für Pub/Sub.
- Lesen Sie die Versionshinweise zu Pub/Sub.
- Data Engineering mit Google Cloud -Diensten auf Qwiklabs kennenlernen.