OCI Queue è un servizio di coda ad alta disponibilità e con throughput elevato in grado di acquisire milioni di messaggi al secondo. Gli utenti possono pubblicare, utilizzare ed eliminare i messaggi dentro Queue, nonché aggiornarne la visibilità.
OCI Queue supporta API RESTful con SDK e STOMP.
Queue supporta code standard (ordinazione a massimo sforzo). Le code FIFO (ordinazione rigida) sono una funzione che arriverà in futuro e per cui non abbiamo ancora una tempistica. Invia una richiesta di supporto o parla con il tuo account manager OCI se sono un requisito.
OCI Queue offre un SLA con tempi di attività equivalenti al 99,9% e un periodo di conservazione massimo di sette giorni per i messaggi.
Puoi aumentare alcuni limiti inviando a una richiesta di supporto.
Un meccanismo di limitazione viene attivato quando vengono superate le seguenti soglie:
Parametro | Limite flessibile del cliente |
---|---|
Limite del throughput | 10 MB/sec in entrata e 10 MB/sec in uscita per coda (flessibile) |
Puoi trovare un codice di esempio nel repository di Oracle DevRel GitHub oppure seguire la procedura riportata di seguito per configurare il tuo IDE.
com.oracle.oci.sdk
oci-java-sdk-queue
3.2.0
Alcune funzioni SDK sono illustrate negli esempi inclusi nei repository GitHub pubblici per OCI Queue.
Forniamo le seguenti API:
API di gestione delle code
API di messaggistica
Puoi trovare dettagli sugli errori API nella documentazione.
La purge call funziona in modo lineare; ciò significa che eliminerà tutti i messaggi pubblicati prima della purge call, ma anche che potrebbe eliminare alcuni messaggi pubblicati mentre la coda è in stato di rimozione (più strettamente in stato di aggiornamento con dettagli sullo stato del ciclo di vita della rimozione). La PutMessages call non è bloccata durante l'operazione di rimozione, ma i suoi messaggi potrebbero essere eliminati.
I messaggi rimossi non verranno restituiti dalla GetMessages call e non avranno un impatto sulle statistiche della coda. Tuttavia, il processo di eliminazione dei messaggi è asincrono e potrebbe richiedere del tempo. Durante tale periodo, le operazioni di aggiornamento ed eliminazione dei messaggi rimossi avranno esito positivo, purché tu disponga di una ricevuta valida.
No, il cliente deve richiamare l'API DeleteMessage per eliminare un messaggio dopo averlo elaborato correttamente. In caso contrario, il messaggio verrà riportato alla coda (dopo un timeout di visibilità) e restituito durante una richiesta Get successiva.