Was ist Pub/Sub?

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

Pub/Sub ermöglicht Diensten die asynchrone Kommunikation mit Latenzen im Bereich von 100 Millisekunden.

Pub/Sub wird für Streaminganalysen und Datenintegrationspipelines verwendet, um Daten zu laden und zu verteilen. Sie 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 von Ereigniserstellern und -nutzern, Publishern und Abonnenten, erstellen. 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 verarbeitet werden. Pub/Sub sendet dann Ereignisse an alle Dienste, die darauf reagieren. In Systemen, die über RPCs kommunizieren, müssen Publisher warten, bis Abonnenten die Daten erhalten. 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 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 Serverereignissen aus Ihrem System verwenden möchten, können Sie diese 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 in der Rohfassung oder in verarbeiteter Form können für mehrere Anwendungen in Ihrem Team und in Ihrer Organisation zur Verarbeitung in Echtzeit zur Verfügung gestellt werden. Pub/Sub unterstützt einen „Unternehmensereignisbus“ und ereignisgesteuerte Anwendungsdesignmuster. Pub/Sub lässt sich in viele 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 kann eine Ansicht des Datenbankstatus und des Statusverlaufs in BigQuery und anderen Datenspeichersystemen erstellt werden.
  • Parallele Verarbeitung und Workflows Sie können viele Aufgaben effizient auf mehrere Worker verteilen, indem Sie mithilfe von Pub/Sub-Nachrichten mit den Workern kommunizieren. 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 Echtzeit-Datenfreigabebus erstellen und so Geschäftsereignisse, Datenbankaktualisierungen und Analyseereignisse in Ihrem gesamten Unternehmen verteilen.
  • Datenstreaming von Anwendungen, Diensten oder IoT-Geräten. Eine SaaS-Anwendung kann beispielsweise einen Echtzeitfeed von Ereignissen veröffentlichen. Oder ein Sensor für Umgebungen kann Daten über eine Datenverarbeitungspipeline an Pub/Sub streamen, um sie 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 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 automatisch übernehmen.

Arten von Pub/Sub-Diensten

Pub/Sub besteht aus zwei Diensten:

  • Pub/Sub-Dienst: Dieser Messaging-Dienst ist die Standardeinstellung 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 unterstützt die synchrone Replikation aller Daten in mindestens zwei Zonen und die Best-Effort-Replikation in eine dritte zusätzliche Zone.

  • Pub/Sub Lite-Dienst: Ein separater, aber ähnlicher Messaging- Dienst für geringere Kosten. Es bietet eine geringere Zuverlässigkeit als Pub/Sub. Sie bietet entweder zonalen oder regionalen Themenspeicher. Zonale Lite-Themen werden nur in einer Zone gespeichert. Regionale Lite-Themen replizieren Daten asynchron in eine zweite Zone. Außerdem müssen Sie bei Pub/Sub Lite Speicher- und Durchsatzkapazität vorab bereitstellen und verwalten. Ziehen Sie Pub/Sub Lite nur für Anwendungen in Betracht, bei denen niedrige Kosten zusätzliche operative Arbeit und eine 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 der Messaging-Middleware wie Apache ActiveMQ und RabbitMQ. Beispiele für solche Funktionen sind Warteschlangen und Filterung für unzustellbare Nachrichten.

Ein weiteres Feature, das Pub/Sub aus der Messaging-Middleware übernimmt, ist die Parallelität pro Nachricht anstelle von partitionierungsbasiertem Messaging. Pub/Sub „freigegeben“ 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 sorgt für die Unabhängigkeit von Publishern und Abonnenten.

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. 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 zu Cloud Storage, BigQuery und anderen Produkten sind in den Pub/Sub- und Dataflow-UIs 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 Integrations- und Verarbeitungspipelines, die in Spark und Dataproc ausgeführt werden, kann mit Data Fusion erreicht werden.
  • Monitoring, Benachrichtigungen und Logging: 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 detaillierte IAM-Berechtigungen, sodass die Zugriffssteuerung für einzelne Ressourcen möglich ist.
  • APIs: Pub/Sub verwendet standardmäßige gRPC- und REST Service API-Technologien zusammen mit Clientbibliotheken für mehrere Sprachen.
  • Trigger, Benachrichtigungen und Webhooks. Pub/Sub bietet die 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. Die Orchestrierung von Big Data und Analyse erfolgt häufig mit Cloud Composer, das Pub/Sub-Trigger unterstützt. Sie können Pub/Sub auch mit Application Integration (Vorabversion) integrieren, einer Integration-Platform-as-a-Service-Lösung (iPaaS). Application Integration bietet einen Pub/Sub-Trigger, um Integrationen auszulösen oder zu starten.
  • 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 für Ihre Integrationen verfügbar gemacht. Für Pub/Sub können Sie eine Pub/Sub-Verbindung zur Verwendung in Ihren Integrationen erstellen.

Weitere Informationen