Questo documento fornisce informazioni sull'utilizzo controllo della contemporaneità con i messaggi pubblicati in un argomento.
Il controllo della concorrenza ti consente di ignorare il numero predefinito di thread di sfondo (I/O) utilizzati dalla libreria client per pubblicare i messaggi. In questo modo, i client publisher possono inviare messaggi in parallelo.
Il controllo della concorrenza è una funzionalità disponibile nella libreria client di alto livello Pub/Sub. Puoi anche implementare il tuo controllo della contemporaneità quando utilizzi una libreria a basso livello.
Il supporto del controllo della contemporaneità dipende dal linguaggio di programmazione della libreria client. Per le implementazioni dei linguaggi che supportano thread paralleli, come C++, Go e Java, le librerie client fanno una scelta predefinita per il numero di thread.
Questa pagina spiega il concetto di controllo della contemporaneità e come configurare la funzionalità per i clienti publisher. Per configurare i client sottoscrittori per controllo della contemporaneità, consulta Elaborare più messaggi con il controllo della concorrenza.
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 pubblicare messaggi in un argomento,
chiedi all'amministratore di concederti il ruolo IAM Publisher Pub/Sub (roles/pubsub.publisher
) nell'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.
Configurazioni di controllo della concorrenza
I valori predefiniti per le variabili di controllo della contemporaneità e i nomi delle variabili possono variare in base alle librerie client. Ad esempio, nella libreria client Java, i metodi per configurare controllo della contemporaneità sono setExecutorProvider()
e setChannelProvider()
. Per saperne di più, consulta la
documentazione di riferimento dell'API.
setExecutorProvider() ti consente di personalizzare il provider dell'executor utilizzato per elaborare le risposte di pubblicazione. Ad esempio, puoi cambiare il provider dell'executor con uno che restituisce un singolo executor condiviso con un numero limitato di thread su più client publisher. Questa configurazione consente di limitare il numero di thread creati.
setChannelProvider() ti consente di personalizzare il provider di canali utilizzato per aprire le connessioni a Pub/Sub. In genere, non configuri questo valore a meno che tu non voglia utilizzare lo stesso canale su più client editore. Il riutilizzo di un canale su troppi clienti potrebbe comportare errori
GOAWAY
oENHANCE_YOUR_CALM
. Se vedi questi errori nei log della tua applicazione o in Cloud Logs, crea altri canali.
Esempi di codice per controllo della contemporaneità
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.
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.
Passaggi successivi
Per limitare le località in cui Pub/Sub archivia i dati dei messaggi, consulta Limitare le località delle risorse Pub/Sub.
Per scoprire di più sulla ricezione dei messaggi, consulta Scegliere un tipo di abbonamento.