Pub/Sub-Kontingente und -Limits

Google Cloud verwendet Kontingente, um den Anteil einer bestimmten freigegebenen Google Cloud-Ressource einzuschränken, den Sie nutzen können. Jedes Kontingent stellt eine bestimmte zählbare Ressource dar, z. B. API-Aufrufe an einen bestimmten Dienst, die Anzahl der an einen bestimmten Dienst gesendeten Byte oder die Anzahl der von Ihrem Projekt gleichzeitig verwendeten Streamingverbindungen.

Viele Dienste haben auch Limits, die nicht mit dem Kontingentsystem in Zusammenhang stehen. Dies sind feste Einschränkungen, z. B. die maximale Nachrichtengröße oder die Anzahl der Pub/Sub-Ressourcen, die Sie in einem Projekt erstellen können. Erhöhen oder verringern Sie diese nicht.

Kontingente ansehen und verwalten

Sie können die aktuellen Kontingentlimits eines Projekts und deren Nutzung im Dashboard "IAM & Verwaltung" für Kontingente ansehen. Sie können dieses Dashboard auch für Folgendes verwenden:

  • Kontingentlimits reduzieren
  • Höhere Kontingentlimits beantragen

Weitere Informationen zum Monitoring und zu Benachrichtigungen zu Ihrer Kontingentnutzung finden Sie unter Monitoring.

Attribution der Kontingentnutzung

Für den Push-Abonnentendurchsatz wird die Kontingentnutzung anhand des Projekts berechnet, in dem das Push-Abo enthalten ist. Dies ist das Projekt, das im Namen des Abos angezeigt wird.

Bei allen anderen Kontingenten wird die Nutzung über das Projekt abgerechnet, das mit den in der Anfrage angegebenen Anmeldedaten verknüpft ist. Die Kontingentnutzung wird nicht für das Projekt berechnet, das die angeforderte Ressource enthält.

Beispiel: Wenn ein Dienstkonto in Projekt A eine Veröffentlichungsanfrage zum Veröffentlichen zu einem Thema in Projekt B sendet, wird das Kontingent Projekt A in Rechnung gestellt. In einigen Fällen soll die Kontingentnutzung einem anderen Projekt in Rechnung gestellt werden. Sie können den Systemparameter X-Goog-User-Project verwenden, um das Projekt für die Kontingentzuordnung zu ändern. Weitere Informationen zu X-Goog-User-Project finden Sie unter Systemparameter.

Sie können die gcloud CLI verwenden, um das Projekt für die Kontingentzuordnung für eine bestimmte Anfrage festzulegen. Die gcloud CLI sendet den Anfrageheader X-Goog-User-Project.

Sie benötigen die Rolle roles/serviceusage.serviceUsageConsumer oder eine benutzerdefinierte Rolle mit der Berechtigung serviceusage.services.use für das Projekt, das Sie für die Kontingentzuordnung verwenden möchten.

Das folgende Beispiel zeigt, wie Sie eine Liste der Abos im Projekt RESOURCE_PROJECT abrufen, während Sie das Kontingent für Administratorvorgänge mit dem Projekt QUOTA_PROJECT in Rechnung stellen. Führen Sie den folgenden Befehl in Ihrem Google Cloud CLI-Terminal aus:

gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT

Ersetzen Sie QUOTA_PROJECT durch die ID des Google Cloud-Projekts, für das Sie das Kontingent in Rechnung stellen möchten.

Beachten Sie, dass in Pub/Sub immer das Projekt in Rechnung gestellt wird, das die Ressource enthält. Sie können das Projekt nur für die Kontingentzuordnung ändern.

Pub/Sub Kontingente

Die in der folgenden Tabelle aufgelisteten Kontingente können pro Projekt im Dashboard „APIs & Dienste“ für Kontingente aufgerufen und bearbeitet werden.

Regionale Kontingente sind in drei Typen unterteilt:

  • Große Regionen: europe-west1, europe-west4, us-central1, us-east1, us-east4, us-west1, us-west2
  • Mittlere Regionen: asia-east1, asia-northeast1, asia-southeast1, europe-west2, europe-west3
  • Kleine Regionen: alle anderen Regionen

Kontingente für die einmalige Zustellung sind regionsspezifisch. Prüfen Sie die Details für jede Region in der folgenden Tabelle.

Kontingent Standardkontingentlimit Beschreibung
Publisher-Durchsatz pro Region
  • 240.000.000 KB pro Minute (4 GB/s) in großen Regionen
  • 48.000.000 KB pro Minute (800 MB/s) in mittelgroßen Regionen
  • 12.000.000 KB pro Minute (200 MB/s) in kleinen Regionen

pubsub.googleapis.com/regionalpublisher

Die Kontingentnutzung beruht auf der Größe der veröffentlichten PubsubMessages:

In einer Veröffentlichungsanfrage können mehrere Nachrichten enthalten sein. Für diese Nachrichten wird kein zusätzliches Kontingent berechnet.

Pull-Abonnentendurchsatz pro Region
  • 240.000.000 KB pro Minute (4 GB/s) in großen Regionen
  • 48.000.000 KB pro Minute (800 MB/s) in mittelgroßen Regionen
  • 24.000.000 KB pro Minute (400 MB/s) in kleinen Regionen

pubsub.googleapis.com/regionalsubscriber

Die Kontingentnutzung beruht auf der Größe der zurückgegebenen PubsubMessages:

Bestätigungsdurchsatz pro Region
  • 240.000.000 KB pro Minute (4 GB/s) in großen Regionen
  • 48.000.000 KB pro Minute (800 MB/s) in mittelgroßen Regionen
  • 24.000.000 KB pro Minute (400 MB/s) in kleinen Regionen

pubsub.googleapis.com/regionalacknowledger

Die Kontingentnutzung beruht auf der Größe der Acknowledge- und ModifyAckDeadline-Anfragen:

Durchsatz von Push- und Exportabonnenten pro Region
  • 26.400.000 KB pro Minute (440 MB/s) in großen Regionen
  • 8.400.000 KB pro Minute (140 MB/s) in mittelgroßen Regionen
  • 2.400.000 KB pro Minute (40 MB/s) in kleinen Regionen

pubsub.googleapis.com/regionalpushsubscriber

Bei Push-Zustellungsanfragen an den Push-Endpunkt richtet sich die Kontingentnutzung nach der Größe der an den Push-Endpunkt gesendeten PubsubMessages.

StreamingPull-Abonnentendurchsatz pro Region
  • 240.000.000 KB pro Minute (4 GB/s) in großen Regionen
  • 48.000.000 KB pro Minute (800 MB/s) in mittelgroßen Regionen
  • 24.000.000 KB pro Minute (400 MB/s) in kleinen Regionen

pubsub.googleapis.com/regionalstreamingpullsubscriber

Die Kontingentnutzung beruht auf der Größe der PubsubMessages, die an den Abonnenten gestreamt werden:

Für Clientbibliotheken werden nach Möglichkeit Vorgänge vom Typ StreamingPull verwendet.

Anzahl der offenen StreamingPull-Verbindungen pro Region
  • 72.000 gleichzeitig offene Verbindungen in großen Regionen
  • 48.000 offene Verbindungen gleichzeitig in mittelgroßen Regionen
  • 24.000 gleichzeitig offene Verbindungen in kleinen Regionen

pubsub.googleapis.com/regionalstreamingpullconnections

Die Anzahl der offenen StreamingPull-Verbindungen zu einem beliebigen Zeitpunkt. Siehe StreamingPull.

Verwaltungsvorgänge 6.000 pro Minute (100 Vorgänge pro Sekunde)

pubsub.googleapis.com/administrator

Für jeden Verwaltungsvorgang wie etwa GetTopicRequest wird diesem Kontingent eine Einheit angerechnet.

Get*, List*, Create*, Delete*, Update*, ModifyPushConfig, SetIamPolicy, GetIamPolicy, TestIamPermissions, ValidateSchema, ValidateMessage,CommitSchema,RollbackSchema, DeleteSchemaRevision, ListSchemaRevisions und DetachSubscription sind Administratorvorgänge.

Anzahl der Nachrichten, die aus Abos mit aktivierter genau einmaliger Zustellung pro Region abgerufen wurden
  • 1.000.000 Nachrichten pro Minute in us-central1
  • 700.000 Nachrichten pro Minute in us-east1
  • 300.000 Nachrichten pro Minute in us-west1
  • 180.000 Nachrichten pro Minute in anderen Regionen

pubsub.googleapis.com/exactlyoncedeliveredmessagecount

Die Kontingentnutzung basiert auf der Anzahl der vom Abonnenten verbrauchten PubsubMessages:

Anzahl der Nachrichten, die bestätigt wurden oder deren Frist verlängert wird, wenn Abos mit genau einmaliger Zustellung pro Region aktiviert sind
  • 10.000.000 Nachrichten pro Minute in us-central1
  • 7.000.000 Nachrichten pro Minute in us-east1
  • 3.000.000 Nachrichten pro Minute in us-west1
  • 1.800.000 Nachrichten pro Minute in anderen Regionen

pubsub.googleapis.com/exactlyonceackcount

Die Kontingentnutzung basiert auf der Anzahl der Bestätigungs-IDs in Acknowledge- und ModifyAckDeadline-Anfragen:

Durchsatzkontingenteinheiten

Die Nutzung von Durchsatzkontingenten wird in Einheiten von 1 KB gemessen. 1 KB entspricht 1.000 Byte. Beispiel: In einer PublishRequest mit 105 Nachrichten mit jeweils 50 Byte beträgt die Nutzerdatengröße 105 * 50 bytes = 5250 bytes. Die Kontingentnutzung beläuft sich also auf max(1kB, ceil(5250 bytes/1000)) = 6kB.

Ressourcenlimits

Ressource Limits
Projekt 10.000 Themen
10.000 angehängte oder getrennte Abos
5.000 Snapshots
10.000 Schemas
Thema 10.000 angehängte Abos
5.000 angehängte Snapshots
Ist die Aufbewahrung von Themennachrichten konfiguriert, können Nachrichten, die zu einem Thema veröffentlicht wurden, bis zu 31 Tage ab dem Zeitpunkt der Veröffentlichung im nichtflüchtigen Speicher gespeichert werden.
Abo Standardmäßig werden unbestätigte Nachrichten ab der Veröffentlichung für 7 Tage im nichtflüchtigen Speicher aufbewahrt. Die Anzahl der aufbewahrten Nachrichten ist nicht begrenzt.
Wenn Abonnenten kein Abo nutzen, läuft es ab. Die standardmäßige Ablaufzeit beträgt 31 Tage.
Schema Schemagröße (Feld definition): 50 KB
Überarbeitungen pro Schema: 20
Veröffentlichungsanfrage 10 MB (Gesamtgröße)
1.000 Nachrichten
Meldung Nachrichtengröße (Feld data): 10 MB
Attribute pro Nachricht: 100
Attributschlüsselgröße: 256 Byte
Attributwertgröße: 1.024 Byte
StreamingPull-Streams 10 MB/s pro offenem Stream
Unäre Pull-Antwort Maximale Anzahl von Nachrichten in der Pull-Antwort: 1.000
Maximale Größe der Pull-Antwort: 10 MB
Pull-/StreamingPull-Nachrichten Der Dienst kann Limits festlegen, die die Gesamtzahl der pro Verbindung ausstehenden StreamingPull-Nachrichten regeln. Wenn Sie ein solches Limit erreichen, sollten Sie die Rate, mit der Sie Nachrichten bestätigen, und die Anzahl der verwendeten Verbindungen erhöhen.
Anfragen vom Typ „Bestätigen“ und „ModifyAckDeadline“ 512 KB (Gesamtgröße)
Schlüssel anordnen Wenn Nachrichten Reihenfolgeschlüssel haben, beträgt der maximale Publisher-Durchsatz 1 Mbit/s für jeden Sortierungsschlüssel.

Für höhere Kontingente ein Dienstkonto verwenden

Wenn Sie das gcloud-Tool der Google Cloud CLI mit einem normalen Nutzerkonto (d. h. einem Nicht-Dienstkonto) verwenden, sind Pub/Sub-Vorgänge auf eine Rate begrenzt, die für manuelle Vorgänge geeignet ist. Raten, die dieses Limit überschreiten, führen zum Fehler RESOURCE_EXHAUSTED. Dies können Sie durch die Verwendung von Anmeldedaten für ein Dienstkonto verhindern. Wenn Sie Anmeldedaten der gcloud CLI zur Automatisierung verwenden möchten, aktivieren Sie ein Dienstkonto für Ihre Pub/Sub-Vorgänge.

Standortendpunkte zum Weiterleiten von Anfragen verwenden

Wenn Sie in bestimmten Regionen zusätzliche Kontingente haben, können Sie Anfragen mithilfe von lokalen Pub/Sub-Endpunkten an diese Regionen weiterleiten. Wenn Sie Nachrichten in einem globalen Endpunkt veröffentlichen, leitet der Pub/Sub-Dienst den Traffic möglicherweise an eine Region weiter, die nicht über ausreichende Kontingente verfügt.

Kontingentabweichungen

Kontingentabweichungen können auftreten, wenn veröffentlichte oder empfangene Nachrichten kleiner als 1.000 Byte sind. Beispiel:

  • Wenn Sie zehn Nachrichten mit je 500 Byte in separaten Anfragen veröffentlichen, beträgt Ihre Kontingentnutzung als Publisher 10.000 Byte. Das liegt daran, dass Nachrichten unter 1.000 Byte automatisch auf 1.000 Byte aufgerundet werden.

  • Wenn Sie die zehn Nachrichten innerhalb einer einzelnen Pull-Antwort empfangen, beträgt Ihre Kontingentnutzung als Abonnent möglicherweise nur 5 KB. Dies liegt daran, dass für die Bestimmung des Gesamtkontingents die Nachrichten in ihrer tatsächlichen Größe zusammengefasst werden.

  • Auch das Gegenteil kann der Fall sein. Die Kontingentnutzung als Abonnent kann über der Kontingentnutzung als Publisher liegen, wenn Sie mehrere Nachrichten in einer einzelnen Veröffentlichungsanfrage veröffentlichen oder die Nachrichten in separaten Pull-Anfragen empfangen.