Questo documento fornisce informazioni sull'utilizzo del controllo del flusso con i messaggi pubblicati in un argomento.
Informazioni sul controllo del flusso
Un client publisher potrebbe tentare di pubblicare messaggi più velocemente di quanto il client sia in grado di inviare dati al servizio Pub/Sub. I clienti sono limitati da molti fattori, tra cui:
- CPU, RAM e capacità di rete della macchina
- Impostazioni di rete, ad esempio il numero di richieste in attesa e la larghezza di banda disponibile
- La latenza di ogni richiesta di pubblicazione, in gran parte determinata dalle connessioni di rete tra il servizio Pub/Sub, il client e Google Cloud
Se la tasso di richieste di pubblicazione supera questi limiti, le richieste si accumulano in memoria
fino a quando non si verifica un errore DEADLINE_EXCEEDED
. Questo accade soprattutto quando decine di migliaia di messaggi vengono pubblicati in un loop, generando migliaia di richieste in millisecondi.
Puoi diagnosticare questo problema controllando le metriche lato server in Monitoraggio. Non potrai vedere le richieste non riuscite con DEADLINE_EXCEEDED
, ma solo quelle andate a buon fine. Il tasso di richieste andate a buon fine indica la capacità di throughput delle macchine client, fornendo una linea di base per la configurazione del controllo del flusso.
Per ridurre i problemi di flusso, configura il client publisher con il controllo del flusso per limitare la frequenza delle richieste di pubblicazione. Puoi configurare il numero massimo di byte allocati per le richieste in sospeso e il numero massimo di messaggi in sospeso consentiti. Imposta questi limiti in base alla capacità di throughput delle macchine client.
Prima di iniziare
Prima di configurare il flusso di lavoro di pubblicazione, assicurati di aver completato le seguenti attività:
- Scopri di più sugli argomenti e sul flusso di lavoro di pubblicazione.
- Crea un argomento.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per utilizzare il controllo del flusso,
chiedi all'amministratore di concederti il ruolo IAM Editore Pub/Sub (roles/pubsub.publisher
) per il tuo argomento.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per creare o aggiornare argomenti e iscrizioni, sono necessarie autorizzazioni aggiuntive.
Utilizzare il controllo del flusso con i messaggi
Il controllo del flusso del publisher è disponibile utilizzando le librerie client Pub/Sub nelle seguenti lingue:
C++
Prima di provare questo esempio, segui le istruzioni di configurazione C++ riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C++.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Go.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub Node.js.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.