Questo documento fornisce informazioni sull'utilizzo del controllo del flusso con i messaggi pubblicato in un argomento.
Informazioni sul controllo del flusso
Il client di un publisher potrebbe tentare di pubblicare i messaggi più velocemente di quel client 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, come il numero di richieste in sospeso e la larghezza di banda disponibile
- La latenza di ogni richiesta di pubblicazione, determinata in gran parte dalle connessioni di rete tra Pub/Sub il client e Google Cloud
Se la tasso di richieste di pubblicazione supera questi limiti, le richieste si accumulano in memoria
finché l'operazione non riesce e viene restituito un errore DEADLINE_EXCEEDED
. Ciò è particolarmente probabile
pubblicazione di decine di migliaia di messaggi in un loop, generando migliaia
di richieste in millisecondi.
Puoi diagnosticare questo problema controllando le metriche lato server in Monitoring. Tu
non potrai vedere le richieste non andate a buon fine con DEADLINE_EXCEEDED
, solo
richieste riuscite. La percentuale di richieste andate a buon fine indica
di velocità effettiva delle macchine client, fornendo una base di riferimento per la configurazione del flusso
controllo.
Per mitigare 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 consentito. Imposta questi limiti in base alla capacità di velocità effettiva delle tue macchine client.
Prima di iniziare
Prima di configurare il flusso di lavoro di pubblicazione, assicurati di aver completato quanto segue attività:
- Scopri di più su argomenti e flusso di lavoro di pubblicazione.
- Crea un argomento.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per usare il controllo del flusso,
chiedi all'amministratore di concederti
Ruolo IAM Pub/Sub Publisher (roles/pubsub.publisher
) per il tuo argomento.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Devi avere autorizzazioni aggiuntive per creare o aggiornare argomenti e sottoscrizioni.
Utilizzare il controllo del flusso con i messaggi
Il controllo del flusso dei publisher è disponibile utilizzando Librerie client Pub/Sub nelle seguenti lingue:
C++
Prima di provare questo esempio, segui le istruzioni per la configurazione di C++ in 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 in 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 in 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 in Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js in Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Pub/Sub.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python in Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Pub/Sub.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby in Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.