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öffentlichungsablauf, einschließlich des Konzepts von Themen und Nachrichten.
Themen
Ein Pub/Sub-Thema ist eine benannte Ressource, die einen Nachrichtenfeed darstellt. Wenn ein Publisher eine Nachricht sendet, wird 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 dem 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 Datenaufnahme für ein Thema über die Console, die Google Cloud CLI, REST-Aufrufe oder die Clientbibliotheken aktivieren. Im Rahmen der Verwaltung des Importthemas bietet Google Cloud die Überwachung und Skalierung der Datenaufnahmepipeline.
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 Daten aus der ursprünglichen Quelle ab und veröffentlicht sie in Pub/Sub. Der zusätzliche Dienst kann eine Streaming-Engine wie Apache Spark oder ein benutzerdefinierter Dienst sein. Außerdem müssen Sie diesen Dienst konfigurieren, bereitstellen, ausführen, skalieren und ü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, ist der Storage Transfer Service (STS) eine gute Option.
Pub/Sub unterstützt die folgenden Quellen für Importthemen:
Datenreplikation in einem Thema
Für ein Pub/Sub-Thema werden drei Zonen zum Speichern von Daten verwendet. 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 sind die Daten, die durch den Dienst geleitet werden.
Eine Nachricht besteht aus Feldern mit den Nachrichtendaten und Metadaten. In einer Nachricht muss eine der folgenden Optionen angegeben werden.
Nachrichtendaten: Dies ist der Hauptinhalt der Nachricht und kann beliebige Text- oder Binärdaten sein. 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. Sehen Sie sich das Beispiel auf dem Tab „REST“ im Abschnitt Nachrichten veröffentlichen an.
Reihenfolgeschlüssel: Dies ist eine Kennung, die die Entität darstellt, für die Nachrichten sortiert werden müssen. Nachrichten mit demselben Reihenfolgeschlüssel werden einem Abonnenten in der Reihenfolge ihrer Veröffentlichung zugestellt. Ein Sortierschlüssel ist nur erforderlich, wenn Sie eine sortierte Zustellung Ihrer Nachrichten wünschen. Weitere Informationen zu Bestellschlüsseln finden Sie unter Bestellnachricht.
Attribute: Optionale Schlüssel/Wert-Paare, die zusätzlichen Kontext und Informationen zur Nachricht liefern. Sie können zum Weiterleiten, Filtern oder Anreichern von Nachrichteninhalten verwendet werden. 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 von Nachrichten 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
Um eine Nachricht mit Pub/Sub zu veröffentlichen, erstellt eine Publisher-Anwendung Nachrichten und sendet sie an ein Thema.
- Eine Nachricht mit den entsprechenden Daten erstellen.
- Wählen Sie optionale Veröffentlichungsattribute aus.
- Eine Anfrage an den Pub/Sub-Server senden, um die Nachricht für ein bestimmtes Thema zu veröffentlichen.
Der Pub/Sub-Dienst empfängt die Nachricht und verarbeitet sie so:
Die Nachricht wird für die Verteilung gespeichert.
Die Nachricht wird für Langlebigkeit und Hochverfügbarkeit über mehrere Zonen 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.
Weitere Informationen zum Pub/Sub-System finden Sie unter Übersicht über den Pub/Sub-Dienst.
Weitere Informationen zur Funktionsweise von Pub/Sub finden Sie unter Architektur von Pub/Sub.