Panoramica di Queue

Oracle Cloud Infrastructure (OCI) Queue è un servizio serverless completamente gestito che consente di scollegare i sistemi e abilitare operazioni asincrone. Queue gestisce dati transazionali ad alto volume che richiedono l'elaborazione di messaggi in modo indipendente senza perdite o duplicazioni. Queue supporta una scalabilità trasparente e automatica basata sul throughput per produttori e consumatori. Queue utilizza standard aperti per supportare la comunicazione con qualsiasi cliente o produttore con il minimo sforzo.

Il servizio OCI Queue si basa su quattro principi:

In fase di pubblicazione
I messaggi possono essere pubblicati in coda da uno o più producer, ciascuno con un periodo di conservazione. Se la conservazione non viene specificata, il messaggio scade utilizzando un periodo di conservazione definito a livello di coda. Un messaggio contiene un payload sotto forma di stringa.
Utilizzo
Più consumer possono utilizzare i messaggi da una singola coda. Il conteggio dei consumatori può variare in base al tasso di messaggi pubblicati. Dopo la consegna di un messaggio a un consumer, il messaggio viene nascosto agli altri consumer per un periodo di tempo predefinito, noto come timeout di visibilità.
Aggiornamento
Se l'elaborazione di un messaggio richiede più tempo del previsto, i consumatori possono estendere il timeout di visibilità di un messaggio. L'estensione del timeout di visibilità impedisce che il messaggio venga restituito alla coda e consegnato a un altro consumatore.
eliminazione
Dopo che un messaggio è stato consegnato ed elaborato da un consumatore, il messaggio deve essere eliminato per impedire la riconsegna a un altro consumatore.

Benefit

Il servizio Queue offre i vantaggi riportati di seguito.

Scollegamento applicazione

Queue consente di scollegare applicazioni e sistemi utilizzando un'architettura basata sugli eventi. Lo scollegamento garantisce che i singoli componenti dell'applicazione possano ridimensionarsi in modo indipendente e che, man mano che i nuovi componenti dell'applicazione vengono creati, possano pubblicare o eseguire la sottoscrizione alla coda.

Diagramma che rappresenta un producer che invia messaggi a più code utilizzate da un consumer.

Elaborazione affidabile dei messaggi

Queue garantisce che un messaggio non venga mai perso, anche se il consumer non è disponibile per l'utilizzo. Un messaggio pubblicato è persistente fino all'eliminazione o alla scadenza.

Se un messaggio non viene utilizzato correttamente, viene inviato a una coda di messaggi non recapitabili (DLQ). Le code di messaggi non recapitabili consentono di isolare i messaggi problematici per determinare perché non riescono. L'isolamento e il consumo di messaggi problematici in questo modo possono garantire la consegna di successo a un'applicazione consumer almeno una volta. Per ulteriori informazioni, vedere Code lettera morta.

Standard aperti

È possibile richiamare la coda utilizzando la definizione dell'API RESTful (con specifica Open API) o utilizzando il protocollo STOMP standard del settore.

Concetti

Il servizio Queue utilizza i concetti riportati di seguito.

messaggio
Un messaggio è un elemento in una coda che contiene un payload sotto forma di stringa. La stringa può essere in qualsiasi formato, inclusi XML, JSON, CSV, un messaggio binario con codifica Base64 e persino formati compressi come gzip. I produttori e i consumatori devono concordare il formato del messaggio. Ogni messaggio viene elaborato in modo indipendente.
produttore
Client che invia messaggi alla coda.
consumer
Client che riceve messaggi da una coda. Il consumatore è inoltre responsabile dell'eliminazione dei messaggi dalla coda dopo la ricezione dei messaggi.
canale
Destinazione effimera all'interno di una coda che può essere creata su richiesta. I messaggi possono essere pubblicati in un canale specifico all'interno di una coda e i consumatori possono recuperare i messaggi da canali specifici. Per ulteriori informazioni, vedere Canali.
periodo massimo di conservazione
Periodo di tempo durante il quale una coda conserva un messaggio fino a quando il messaggio non viene eliminato automaticamente dal sistema, se non viene eliminato da un consumer. Il periodo di conservazione massimo è configurabile in base a valori compresi tra 10 secondi e 7 giorni a livello di coda. Il valore predefinito è 1 giorno.
consegna
Il numero di volte in cui un messaggio viene consegnato a un consumatore su richiesta.
numero massimo di tentativi di consegna
Il numero di volte in cui un messaggio viene consegnato a un consumer, ma non aggiornato o eliminato, prima che venga inviato a una coda di messaggi non recapitabili (DLQ). Il numero massimo di tentativi di consegna è configurabile in base a valori compresi tra 1 e 20 a livello di coda. Per ulteriori informazioni, vedere conteggio consegne.
timeout di polling
Periodo di tempo in cui un consumer attenderà l'utilizzo dei messaggi. L'aumento del timeout di polling riduce il numero di volte in cui un consumer richiede messaggi dalla coda, ma la risposta indica che non sono disponibili messaggi da utilizzare. Il timeout di polling è configurabile in base a valori compresi tra 0 e 30 secondi a livello di coda e i consumer possono impostare il valore durante la richiesta dei messaggi. Il valore predefinito corrisponde a 30 secondi. Per ulteriori informazioni, vedere lungo polling.
timeout visibilità
Periodo di tempo durante il quale un messaggio ricevuto dalla coda da un consumer non è visibile ad altri consumer. Il timeout di visibilità è configurabile in base a valori compresi tra 1 secondo e 12 ore a livello di coda e i consumatori possono impostare il valore durante la richiesta dei messaggi. Il valore predefinito corrisponde a 30 secondi. Per maggiori informazioni, vedere message lock.
messaggi visibili
Il numero dei messaggi attualmente presenti in una coda disponibili per l'utilizzo.
messaggi in esecuzione
Numero di messaggi consegnati a un consumer ma non ancora eliminati. I messaggi in esecuzione non sono disponibili per la riconsegna fino al superamento del timeout di visibilità.
coda messaggi non validi
Se un messaggio non viene utilizzato correttamente e presenta più tentativi di consegna rispetto al numero massimo di tentativi di consegna configurato, il messaggio viene trasferito in una coda di messaggi non recapitabili (DLQ). Per ulteriori informazioni, vedere Code lettera morta.

Garanzie

Il servizio Queue fornisce le garanzie riportate di seguito.

  • È garantita la durata di un messaggio pubblicato correttamente finché non viene eliminato o non viene superato il relativo periodo di conservazione. La pubblicazione di un messaggio viene considerata riuscita quando il servizio Queue invia una conferma al producer. Non importa se la risposta è stata ricevuta.
  • È garantito che un messaggio entro il timeout di visibilità non venga consegnato a un altro consumer fino alla scadenza di tale timeout.
  • Un messaggio non verrà eliminato dal servizio Coda prima del termine del periodo di conservazione. Un consumer può elaborare ed eliminare un messaggio durante il periodo di conservazione.

Autenticazione e autorizzazione

Ogni servizio in Oracle Cloud Infrastructure si integra con IAM per l'autenticazione e l'autorizzazione, per tutte le interfacce (console, SDK o CLI e API REST).

Un amministratore dell'organizzazione deve impostare gruppi, compartimenti e criteri che controllano quali utenti possono accedere a quali servizi, quali risorse e il tipo di accesso di cui dispongono. Ad esempio, i criteri controllano chi può creare utenti, gruppi e compartimenti o chi può creare e gestire distribuzioni virtuali.

Modalità di accesso alla coda

Puoi accedere a Queue utilizzando la console (un'interfaccia basata su browser), l'interfaccia CLI di Oracle Cloud Infrastructure o le API REST.

Le istruzioni per tutti e tre i metodi sono incluse in questa guida.

  • OCI Console è un'interfaccia basata su browser facile da usare. Per accedere alla console, è necessario utilizzare un browser supportato.
  • Le API REST offrono la maggior parte delle funzionalità, ma richiedono competenze di programmazione. Riferimento API ed endpoint forniscono dettagli sugli endpoint e collegamenti ai documenti di riferimento API disponibili, incluse le API di coda.
  • OCI fornisce SDK che interagiscono con Queue.
  • L'interfaccia CLI (Command Line Interface) offre accesso rapido e funzionalità complete senza necessità di programmazione.
  • Per utilizzare l'interfaccia CLI OCI o le API REST, puoi impostare l'ambiente o utilizzare Oracle Cloud Infrastructure Cloud Shell.

Limiti del servizio

Quando ti registri a Oracle Cloud Infrastructure, viene configurato un set di limiti di servizio per la tua tenancy. Il limite del servizio è la quota o l'accesso impostato per una risorsa. Rivedere i limiti di servizio riportati di seguito per le risorse Coda.

Risorsa Dettagli
Code 10 per tenancy per area

Per ulteriori informazioni sui limiti del servizio e per trovare le istruzioni per richiedere un aumento del limite, consulta i limiti del servizio. Per impostare limiti specifici del compartimento per una risorsa o una famiglia di risorse, gli amministratori possono utilizzare le quote dei compartimenti.

Limiti funzionali

Oltre ai limiti delle risorse di servizio, esistono limiti di coda specifici per caratteristiche e funzionalità.

Limitato Dettagli
Canali per coda 256 per coda
Dimensione massima richiesta PutMessage 512 KB e 20 messaggi
Dimensione massima risposta GetMessage 2 MB e 20 messaggi
Dimensione massima dei messaggi 256 KB
Numero massimo di messaggi in esecuzione 100.000 per coda
Numero massimo di messaggi per coda Illimitato
Conservazione messaggio Massimo: 7 giorni

Minimo: 10 secondi

Impostazione predefinita: 1 giorno

Timeout visibilità messaggio Massimo: 12 ore

Minimo: 0 secondi a livello di messaggio

Minimo: 1 secondo a livello di coda

Valore predefinito: 30 secondi

Numero massimo richieste GET concorrenti 1.000 richieste al secondo per coda
Numero massimo di operazioni messaggio 1.000 richieste al secondo per API per coda
Frequenza massima di dati Ingresso per coda: 10 MB/s

Uscita per coda: 10 MB/s

Timeout di polling Massimo: 30 secondi

Minimo: 0 secondi

Throughput STOMP 10 MB/s per connessione STOMP
Storage 20 GB per tenancy

2 GB per coda