Um eine Nachricht mit Pub/Sub zu veröffentlichen, erstellt eine Publisher-Anwendung Nachrichten und sendet sie an ein Thema.
Dieses Dokument bietet einen Überblick über den Veröffentlichungsworkflow, einschließlich der Konzept von Themen und Nachrichten.
Themen
Ein Pub/Sub-Thema ist eine benannte Ressource, die einen Nachrichtenfeed darstellt. Wenn ein Publisher eine Nachricht sendet, ist sie auf ein bestimmtes Thema ausgerichtet. Der Pub/Sub-Dienst verwendet diesen Themennamen, um die Nachricht an alle mit dem Thema verknüpften Abos weiterzuleiten. Wenn es mehrere Abonnenten für ein Abo gibt, erhält nur ein Abonnent im Abo die Nachricht.
Publisher müssen nicht wissen, wie viele Abonnenten es gibt. Sie konzentrieren sich auf das Thema und sorgen für eine Trennung zwischen dem Senden und Empfangen von Nachrichten.
Pub/Sub unterstützt zwei Arten von Themen: ein Standardthema und ein Importthema.
Eigenschaften eines Themas
Beim Erstellen oder Aktualisieren eines Themas können Sie die Themaeigenschaften angeben.
Weitere Informationen zu den Themeneigenschaften finden Sie unter Eigenschaften eines Themas.
Importthemen
Mit einem Importthema kann Pub/Sub Streamingdaten aus einer anderen Quelle aufnehmen und als Publisher-Anwendung fungieren, die die Daten an das Thema sendet. Sie können die Aufnahme für eine mithilfe der Console, der Google Cloud CLI, REST -Aufrufen oder die Clientbibliotheken. Im Rahmen der Verwaltung des Importthemas Google Cloud bietet Monitoring und Skalierung der Aufnahmepipeline.
Ohne Importthema ist für das Streaming von Daten aus einer Datenquelle in Pub/Sub ein zusätzlicher Dienst erforderlich. Dieser zusätzliche Dienst ruft aus der ursprünglichen Quelle und veröffentlicht sie in Pub/Sub. Die kann eine Streaming-Engine wie Apache Spark oder ein kundenspezifischen Service. Sie müssen außerdem konfigurieren, bereitstellen, ausführen, skalieren und um diesen Dienst zu überwachen.
Im Folgenden finden Sie wichtige Informationen zu Importthemen:
Ähnlich wie bei einem Standardthema können Sie auch in einem importierten Thema weiterhin manuell veröffentlichen.
Sie können einem Importthema nur eine einzige Datenaufnahmequelle zuordnen.
Wir empfehlen, Topics für Streamingdaten zu importieren. Wenn Sie die Datenaufnahme in BigQuery als Batch anstelle von Streamingdaten in Betracht ziehen, können Sie den BigQuery Data Transfer Service (BQ DTS) verwenden. Wenn Sie Daten in Cloud Storage aufnehmen möchten, Storage Transfer Service (STS) ist eine gute Option.
Pub/Sub unterstützt die folgenden Quellen für Themen importieren: Amazon Kinesis Data Streams
Datenreplikation in einem Thema
Ein Pub/Sub-Thema verwendet drei Zonen zum Speichern von Daten. Der Dienst unterstützt die synchrone Replikation in mindestens zwei Zonen und die Best-Effort-Replikation in einer zusätzlichen dritten Zone. Die Pub/Sub-Replikation erfolgt nur innerhalb einer Region.
Nachrichten
Eine Pub/Sub-Nachricht besteht aus den Daten, die durch den Dienst geleitet werden.
Eine Nachricht besteht aus Feldern mit den Nachrichtendaten und Metadaten. Eines der folgenden muss in einer Nachricht angegeben werden.
Daten der Mitteilung: Dies sind der Kerninhalt der Nachricht. Sie können Text oder Binärdaten. Sie stellt die tatsächlichen Informationen dar, die zwischen Publishern und Abonnenten ausgetauscht werden sollen. Wenn Sie die REST API direkt verwenden, müssen die Nachrichtendaten base64-codiert sein. Das Beispiel finden Sie auf dem REST-Tab im Abschnitt Nachrichten veröffentlichen.
Reihenfolgeschlüssel: Dies ist eine Kennung, die die Entität darstellt, für die Nachrichten sortiert werden müssen. Nachrichten mit demselben Bestellschlüssel sollten und zwar in der Reihenfolge, in der sie veröffentlicht wurden. Ein Sortierschlüssel ist nur erforderlich, wenn Sie eine sortierte Zustellung Ihrer Nachrichten wünschen. Weitere Informationen zur Sortierung von Schlüsseln siehe Bestellnachricht
Attribute: Dies sind optionale Schlüssel/Wert-Paare, die zusätzliche Kontext und Informationen über die Nachricht. Sie können für Routing, Filterung oder Anreicherung des Nachrichteninhalts. Sie können beispielsweise Attribute wie Zeitstempel oder Transaktions-IDs hinzufügen. Weitere Informationen zu Attributen, die beim Veröffentlichen von Nachrichten verwendet werden, finden Sie unter Attribute zum Veröffentlichen einer Nachricht verwenden.
Der Pub/Sub-Dienst fügt der Nachricht die folgenden Felder hinzu:
- Eine für das Thema eindeutige Nachrichten-ID
- Ein Zeitstempel, wenn der Pub/Sub-Dienst die Nachricht empfängt
Hier ist beispielsweise ein Nachrichtenformat im JSON-Format:
{
"data": "This is the core message content.",
"attributes": {
"category": "notification",
"user_id": "12345",
"priority": "medium"
},
"orderingKey": "12345"
}
Workflow für die Veröffentlichung von Nachrichten
Wenn eine Nachricht mit Pub/Sub veröffentlicht werden soll, erstellt eine Publisher-Anwendung Nachrichten und sendet sie an ein Thema.
- Eine Nachricht mit den entsprechenden Daten erstellen.
- Wählen Sie beliebige optionale Veröffentlichungsattribute aus.
- Anfrage an den Pub/Sub-Server senden, um die Nachricht zu veröffentlichen zu einem bestimmten Thema.
Der Pub/Sub-Dienst empfängt die Nachricht und verarbeitet sie so:
Die Nachricht wird zur Verteilung gespeichert.
Die Nachricht wird für Langlebigkeit und Hochverfügbarkeit über mehrere Zonen hinweg repliziert.
Pub/Sub identifiziert Abonnenten mit Abos, die dem Thema der Nachricht entsprechen, und liefert jedem eine Kopie der Nachricht.
Pub/Sub bietet die mindestens einmalige Nachrichtenzustellung und die bestmögliche Reihenfolge für vorhandene Abonnenten.
Eine Übersicht über das Pub/Sub-System finden Sie unter Übersicht über den Pub/Sub-Dienst.
Eine Erklärung zur Funktionsweise von Pub/Sub finden Sie unter Architekturübersicht von Pub/Sub.