FAQ

Allgemeine Fragen

Handelt es sich bei Pub/Sub um Firebase Cloud Messaging (FCM) oder um das veraltete Google Cloud Messaging (GCM)?

Ja und nein. Diese Systeme werden jeweils zur Zustellung von Nachrichten verwendet. Dabei wird FCM zur Zustellung von Nachrichten an und von Endnutzergeräten verwendet wird, während Pub/Sub für die Kommunikation zwischen Servern verwendet wird. FCM kann für eine sehr große Zahl von Zustellungsendpunkten skaliert werden, aber sein Durchsatz ist gering (Nachrichten in der Sekunde pro Kanal). Der Durchsatz ist bei Pub/Sub unbegrenzt und seine API ist generischer.

Ist dies mit PubSubHubbub zu vergleichen?

Nein. Bei der Entwicklung von PubSubHubbub waren Google-Mitarbeiter zwar eng eingebunden, aber seine Stärken bei RSS und Inhaltssyndikation sind keine für Pub/Sub relevanten Anwendungsfälle. Außer dem Namen haben sie kaum etwas gemeinsam.

Kann ich Pub/Sub für die Kommunikation zwischen unterschiedlichen App Engine-Modulen verwenden?

Ja. Mit Pub/Sub können Sie Nachrichten zwischen verschiedenen Modulen in einer App Engine-Anwendung und sogar zwischen verschiedenen Anwendungen im selben Projekt ohne spezielle ACL-Konfiguration senden und empfangen. Um eine Veröffentlichung mit niedriger Latenz zu erreichen, speichern Sie den Publisher-Client, indem Sie ihn als globale Variable initialisieren.

Kann ich Pub/Sub mit anderen Plattformen als App Engine verwenden?

Ja. Sie können Pub/Sub mit Anwendungen verwenden, die auf Google Compute Engine gehostet werden, oder sogar auf Plattformen von Drittanbietern. Sie benötigen lediglich ein Google Cloud Console-Projekt, um loszulegen. Für eine Veröffentlichung mit geringer Latenz empfehlen wir, den Publisher-Client im Cache zu speichern, indem Sie ihn global machen.

Wie kann ich App Engine- und Compute Engine-Anwendungen miteinander verbinden?

Verwenden Sie Push-Zustellung für Messaging mit geringer Latenz von Compute Engine an App Engine. Verwenden Sie Pull-Zustellung zum Senden von Daten von App Engine an sehr viele Abonnenten von Compute Engine.

Wie kann ich Pub/Sub-Messwerte überwachen?

Lesen Sie dazu diesen Artikel.

Ist Pub/Sub in Cloud KMS integriert?

Ja. Pub- und Sub-Themen können so konfiguriert werden, dass Nachrichteninhalte mithilfe eines Schlüssels in Cloud KMS geschützt werden. Weitere Informationen finden Sie unter vom Kunden verwaltete Verschlüsselungsschlüssel verwenden.

Technische Fragen

Werden die Nachrichten in einer bestimmten Reihenfolge zugestellt?

Wenn Nachrichten denselben Reihenfolgeschlüssel haben und die Publisher die Nachrichten an dieselbe Region senden, kann der Pub/Sub-Dienst Nachrichten in der Reihenfolge versenden, in der er sie empfangen hat. Weitere Informationen finden Sie unter Nachrichten in eine Reihenfolge bringen.

Warum werden Kontingentfehler angezeigt, wenn meine Nutzung weit unter den Grenzwerten liegt?

Kontingente werden für das Projekt durchgesetzt, das mit dem authentifizierten Client verbunden ist, wie unter Kontingente und Limits beschrieben. Verwenden Sie unbedingt ein Dienstkonto oder einen API_KEY, der mit einem Projekt verbunden ist, das ausreichend Kontingente besitzt. In der Befehlszeile gcloud wird insbesondere ein freigegebenes Projekt verwendet. Die Kontingente sind sehr begrenzt.

Warum gibt es so viele doppelte Nachrichten?

Pub/Sub garantiert mindestens einmalige Nachrichtenzustellung und Duplikate sind möglich. Eine hohe Anzahl von Duplikaten kann jedoch bedeuten, dass der Client Nachrichten nicht innerhalb der konfigurierten ack_deadline_seconds bestätigt und Pub/Sub die Nachrichtenzustellung wiederholt. Dies ist in den Monitoringmesswerten pubsub.googleapis.com/subscription/pull_ack_message_operation_count für Pull-Abos und in pubsub.googleapis.com/subscription/push_request_count für Push-Abos zu sehen. Achten Sie auf erhöhte Werte für expired oder webhook_timeout im /response_code. Diese sind besonders wahrscheinlich, wenn es viele kleine Nachrichten gibt, da Pub/Sub Nachrichten intern in Batches zusammenfassen kann und ein teilweise bestätigter Batch vollständig neu zugestellt wird.

Eine weitere Möglichkeit besteht darin, dass der Abonnent Nachrichten nicht bestätigt, weil ein Fehler mit dem Codepfad vorliegt, über den diese speziellen Meldungen verarbeitet werden, und weil der Acknowledge-Aufruf daher nicht erfolgt oder der Push-Endpunkt nicht oder mit einem Fehler antwortet.

Wie kann ich doppelte Nachrichten erkennen?

Pub/Sub weist jeder Nachricht eine eindeutige "message_id" zu, mit der doppelte Nachrichten des Abonnenten erkannt werden können. Duplikate aufgrund mehrerer Veröffentlichungsanfragen für dieselben Daten lassen sich dadurch jedoch nicht ermitteln. Dazu wäre eine eindeutige Nachrichtenkennzeichnung durch den Publisher nötig. Weitere Informationen finden Sie unter Pub/Sub I/O.