In diesem Dokument wird davon ausgegangen, dass Sie bereits mit dem Abonnieren eines Pub/Sub-Themas und dem Empfangen von Nachrichten in Ihrem Abonnentenclient vertraut sind.
Wenn Sie Pub/Sub noch nicht kennen, lesen Sie die Kurzanleitungen, um zu erfahren, wie Sie Pub/Sub über die Console, die gcloud CLI oder die Clientbibliotheken ausführen.
Das richtige Abo auswählen
Pub/Sub bietet Standardabos wie Push- und Pull-Abos. Zusätzlich zu den Standardabonnements bietet Pub/Sub auch Exportabonnements, mit denen Sie Nachrichten direkt in einerGoogle Cloud -Ressource speichern können, ohne Dataflow als Vermittler zu benötigen. BigQuery-Abos speichern Nachrichten beispielsweise in einer BigQuery-Tabelle.
Push-Abos werden für die folgenden Szenarien empfohlen:
Du darfst in deiner Aboanwendung keinen Code einfügen, der die Clientbibliothek als Abhängigkeit importiert.
Der Abonnentenclient kann keine ausgehenden Anfragen senden.
Sie möchten dieselbe Instanz verwenden, um Nachrichten von verschiedenen Themen und Abos zu verarbeiten, bei denen der Abonnentenclient die Liste der Abos nicht kennt.
Im Allgemeinen empfehlen wir die Verwendung der Clientbibliothek der höheren Ebene. Wenn Sie stattdessen unary pull verwenden, setzen Sie returnImmediately
nicht auf true
. Wenn Sie den Wert auf true
festlegen, wirkt sich das negativ auf die Pull-Leistung aus.
Das Feld returnImmediately
wird nicht mehr unterstützt.
In der Vergleichstabelle für Pub/Sub-Abos können Sie alle Abotypen vergleichen und denjenigen auswählen, der am besten zu Ihren Geschäftsanforderungen passt.
Informationen zu den Vorteilen eines Exportabos finden Sie unter Wann sollte ich ein Exportabo verwenden?
Nachrichten verarbeiten, bevor sie bestätigt werden
Standardmäßig verwirft Pub/Sub eine Nachricht aus einem Abo, nachdem sie bestätigt wurde. Wenn Sie eine Nachricht nicht verarbeiten, bevor Sie eine Bestätigung senden, und die Verarbeitung fehlschlägt, wird die Nachricht vom Dienst nicht noch einmal gesendet. Eine Ausnahme liegt vor, wenn Sie die Aufbewahrung bestätigter Nachrichten oder die Themenaufbewahrung konfiguriert haben und einen Suchvorgang ausführen.
Wenn du Abonnenten mit hoher Latenz hast, musst du möglicherweise benutzerdefinierte Werte für die Datenflusssteuerung und die Verwaltung von Leases festlegen.
Ablaufsteuerung für Abonnenten für vorübergehende Trafficspitzen konfigurieren
Mit der Ablaufsteuerung auf Abonnentenseite kannst du verhindern, dass Abonnenten durch Trafficspitzen überlastet werden. So haben die Autoscaling-Mechanismen Zeit, auf eine erhöhte Auslastung zu reagieren, oder die Verarbeitung der Auslastung kann über einen längeren Zeitraum verteilt werden. Mit der ersten Methode wird die Latenz gesenkt, mit der zweiten die Kosten.
Wenn Sie die Ablaufsteuerung konfigurieren möchten, müssen Sie geeignete Werte für maximum outstanding messages
und total outstanding message bytes
festlegen. Die Standardwerte für diese Ablaufsteuerungsvariablen und die Namen der Variablen können sich je nach Clientbibliothek unterscheiden.
Mit Maximale ausstehende Nachrichten wird die maximale Anzahl von Nachrichten definiert, die an den Client gesendet wurden und für die Pub/Sub keine Bestätigungen oder negativen Bestätigungen erhalten hat.
Ausstehende Nachrichten-Byte insgesamt gibt die maximale Gesamtgröße der an den Client gesendeten Nachrichten an, für die Pub/Sub keine Bestätigungen oder negativen Bestätigungen erhalten hat.
Wenn das Limit für eine dieser Optionen überschritten wird, ruft der Abonnentenclient keine weiteren Nachrichten ab. Dieses Verhalten dauert so lange an, bis die bereits abgerufenen Nachrichten bestätigt oder negativ bestätigt wurden. So können Sie den Durchsatz gegen die Kosten für mehr Abonnenten abwägen.
Best Practices für die geordnete Übermittlung von Nachrichten bei der Anmeldung
Wenn Sie die Nachrichtensortierung verwenden, beachten Sie Folgendes:
Wähle entweder StreamingPull- oder Pull-Abos aus. Bei einem Push-Abo unterstützt Pub/Sub jeweils nur eine ausstehende Nachricht pro Reihenfolgeschlüssel. Das Senden paralleler Push-Anfragen in einem solchen Szenario würde dem Senden mehrerer Nachrichtenpakete für denselben Reihenfolgeschlüssel ähneln, um Abonnenten gleichzeitig abzurufen. Push-Abos sind daher nicht für Themen zu empfehlen, bei denen häufig mehrere Nachrichten mit demselben Sortierungsschlüssel veröffentlicht werden oder bei denen die Latenz extrem wichtig ist.
Aktivieren Sie die Nachrichtenreihenfolge im Abo. Wenn Sie auf Publisherseite Nachrichten mit einem Reihenfolgeschlüssel und in derselben Region senden, können Sie die Abonnenten so konfigurieren, dass sie diese Nachrichten in der richtigen Reihenfolge erhalten. Aktiviere auf der Abonnentenseite das Attribut für die Nachrichtenreihenfolge nur für die Abos, für die du Nachrichten in der richtigen Reihenfolge erhalten möchtest. Je nach Status der Property kann jedes Abo, das mit dem Thema verknüpft ist, festlegen, ob eine geordnete Zustellung erforderlich ist, ohne sich gegenseitig zu beeinflussen.
Bestätigen Sie die Nachrichten in der richtigen Reihenfolge. Bei der geordneten Zustellung werden Bestätigungen für spätere Nachrichten erst verarbeitet, wenn die Bestätigungen für frühere Nachrichten gemäß dem Sortierschlüssel verarbeitet wurden. Wenn Sie beispielsweise Nachrichten 1, 2 und 3 mit demselben Sortierschlüssel haben, sie alle erhalten und nur Nachricht 3 bestätigen, wird Nachricht 3 vom Dienst erst dann als bestätigt betrachtet, wenn auch Nachrichten 1 und 2 bestätigt wurden. Wenn die Bestätigungen für Nachrichten 1 und 2 nie empfangen werden, werden Nachrichten 1, 2 und 3 noch einmal gesendet.
Zusammenfassung der Best Practices
In der folgenden Tabelle sind die Best Practices zusammengefasst, die in diesem Dokument empfohlen werden:
Thema | Aufgabe |
---|---|
Abotyp auswählen | Wählen Sie den richtigen Abotyp für Ihre Geschäftsanforderungen aus. Wenn von Ihrem Abo unterstützt, verwenden Sie auch die allgemeine Clientbibliothek. |
Bestätigte Nachricht wiedergeben | Nachrichten verarbeiten, bevor Sie sie bestätigen Alternativ können Sie einen Suchvorgang konfigurieren, damit bestätigte Nachrichten nicht verloren gehen. |
Ablaufsteuerung | Konfiguriere die Ablaufsteuerung in den Aboeinstellungen, damit Abonnenten nicht überlastet werden, bis die automatische Skalierung aktiviert wird oder die Zeit vergeht. |
Nachrichten in eine Reihenfolge bringen | Wenn Sie die Nachrichtensortierung verwenden, wählen Sie „StreamingPull“ oder „Pull“ aus, aktivieren Sie die Nachrichtensortierung im Abo und bestätigen Sie die Nachrichten der Reihe nach. |
Nächste Schritte
Best Practices für die Veröffentlichung in einem Pub/Sub-Thema
Best Practices für die Verwendung von Pub/Sub-Messwerten als Skalierungssignal