Übersicht über veröffentlichte Nachrichten

Um eine Nachricht mit Pub/Sub zu veröffentlichen, erstellt eine Publisher-Anwendung Nachrichten und sendet sie an ein Thema.

Dieses Dokument bietet eine Übersicht über den Veröffentlichungs-Workflow, einschließlich des Konzepts von Themen und Nachrichten.

Themen

Ein Thema in Pub/Sub ist eine benannte Ressource, die für einen Feed von Nachrichten steht. Wenn ein Publisher eine Nachricht sendet, richtet er sie an ein bestimmtes Thema. Der Pub/Sub-Dienst verwendet diesen Themennamen, um die Nachricht an alle Abos weiterzuleiten, die mit dem Thema verknüpft sind. Wenn es mehrere Abonnenten für ein Abo gibt, erhält nur einer von ihnen die Nachricht.

Publisher müssen nicht wissen, wie viele Abonnenten es gibt. Sie konzentrieren sich auf das Thema und sorgen so für eine klare Trennung zwischen dem Senden und Empfangen von Nachrichten.

Pub/Sub unterstützt zwei Arten von Themen: Standardthemen und Importthemen.

Themenattribute

Wenn Sie ein Thema erstellen oder aktualisieren, können Sie die Themenattribute angeben.

Weitere Informationen zu den Themenattributen finden Sie unter Attribute 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 ein Thema über die Console, die Google Cloud CLI, REST-Aufrufe oder die Clientbibliotheken aktivieren. Im Rahmen der Verwaltung des Importthemas, Google Cloud bietet Monitoring und Skalierung der Aufnahmepipeline.

Ohne ein Importthema ist für das Streamen 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. Sie müssen diesen Dienst auch konfigurieren, bereitstellen, ausführen, skalieren und überwachen.

Im Folgenden finden Sie eine Liste mit wichtigen Informationen zu Importthemen:

  • Ähnlich wie bei einem Standardthema können Sie auch bei einem Importthema manuell veröffentlichen.

  • Sie können einem Importthema nur eine Aufnahmedatenquelle zuordnen.

Wir empfehlen Importthemen für Streamingdaten. Wenn Sie stattdessen die Batchdatenaufnahme in BigQuery in Betracht ziehen, anstatt Daten zu streamen, können Sie BigQuery Data Transfer Serviceausprobieren. 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 Importthemen:

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 optimale Replikation in einer zusätzlichen dritten Zone. Die Pub/Sub-Replikation erfolgt nur innerhalb einer Region.

Nachrichten

Eine Nachricht in Pub/Sub sind die Daten, die durch den Dienst geleitet werden.

Eine Nachricht besteht aus Feldern mit den Nachrichtendaten und Metadaten. Eine Nachricht muss entweder Nachrichtendaten oder mindestens ein Attribut enthalten.

  • Nachrichtendaten: Dies ist der Hauptinhalt der Nachricht und kann beliebiger Text oder Binärdaten sein. Sie stellen 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. Ein Beispiel finden Sie auf dem Tab „REST“ im Abschnitt Nachrichten veröffentlichen.

  • Reihenfolgeschlüssel: Dies ist eine optionale Kennung, die die Entität darstellt, für die Nachrichten sortiert werden müssen. Nachrichten mit demselben Reihenfolgeschlüssel müssen in der Reihenfolge ihrer Veröffentlichung an einen Abonnenten gesendet werden. Ein Reihenfolgeschlüssel ist nur erforderlich, wenn Sie eine sortierte Zustellung Ihrer Nachrichten wünschen. Weitere Informationen zu Reihenfolgeschlüsseln finden Sie unter Nachrichten sortieren.

  • Attribute: Dies sind optionale Schlüssel/Wert-Paare, die zusätzlichen Kontext und Informationen zur Nachricht liefern. Sie können zum Weiterleiten, Filtern oder Anreichern des Nachrichteninhalts 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 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 ein Beispiel für ein Nachrichtenformat in JSON:

{
  "data": "This is the core message content.",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
    "orderingKey": "12345"
}

Wenn Sie Nachrichten mit Pub/Sub-Clientbibliotheken veröffentlichen, geben Sie die Nachrichtendaten (data) als Byte-Array an, z. B. als Buffer in Node.js. Wenn Ihre Daten ein String sind, müssen Sie sie zuerst in Byte codieren, z. B. mit der UTF-8-Codierung, bevor Sie sie an die Clientbibliothek übergeben.

Wenn Sie die REST API direkt verwenden, müssen die Nachrichtendaten base64-codiert und als String gesendet werden.

Workflow zum Veröffentlichen von Nachrichten

Um eine Nachricht mit Pub/Sub zu veröffentlichen, erstellt eine Publisher-Anwendung Nachrichten und sendet sie an ein Thema.

  1. Eine Nachricht mit den entsprechenden Daten erstellen.
  2. Optionale Veröffentlichungsattribute auswählen.
  3. Eine Anfrage an den Pub/Sub-Server senden, um die Nachricht für ein bestimmtes Thema zu veröffentlichen.
  4. Der Pub/Sub-Dienst empfängt die Nachricht und verarbeitet sie so:

    • Die Nachricht wird zur Verteilung gespeichert.

    • Die Nachricht wird über mehrere Zonen repliziert, um für Langlebigkeit und Hochverfügbarkeit zu sorgen.

    • Pub/Sub identifiziert Abonnenten mit Abos, die dem Thema der Nachricht entsprechen, und sendet eine Kopie der Nachricht an jeden von ihnen.

Pub/Sub bietet mindestens einmalige Nachrichtenzustellung und optimale Reihenfolgen 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übersicht von Pub/Sub.

Nächste Schritte

Apache Kafka® ist eine eingetragene Marke der Apache Software Foundation oder ihrer Tochtergesellschaften in den USA und/oder anderen Ländern.