Visión general de Queue
Oracle Cloud Infrastructure (OCI) Queue es un servicio sin servidor totalmente gestionado que ayuda a disociar sistemas y a activar operaciones asíncronas. Queue maneja grandes volúmenes de datos transaccionales que requieren mensajes procesados de forma independiente sin pérdidas ni duplicación. Queue soporta la escala automática y transparente basada en el rendimiento para productores y consumidores. Queue utiliza estándares abiertos para soportar la comunicación con cualquier cliente o productor con el mínimo esfuerzo.
El servicio OCI Queue se basa en cuatro principios:
- Publicación
- Uno o varios productores pueden publicar mensajes en una cola, cada uno con un período de retención. Si no se especifica la retención, el mensaje caduca mediante un período de retención definido en el nivel de cola. Un mensaje contiene una carga útil en forma de cadena.
- Consumo
- Varios consumidores pueden consumir mensajes de una única cola. El recuento de consumidores se puede escalar junto con el ratio de mensajes que se publican. Después de entregar un mensaje a un consumidor, el mensaje se oculta a otros consumidores durante un período de tiempo predefinido, que se conoce como timeout de visibilidad.
- Actualización
- Si el procesamiento de un mensaje tarda más de lo esperado, los consumidores pueden ampliar el timeout de visibilidad de un mensaje. La ampliación del timeout de visibilidad evita que el mensaje se devuelva a la cola y se entregue a otro consumidor.
- Supresión
- Una vez que un mensaje se ha entregado a un consumidor y este lo ha procesado, se debe suprimir para evitar que se vuelva a entregar a otro consumidor.
Ventajas
El servicio Queue proporciona las siguientes ventajas.
Separación de aplicaciones
Queue ayuda a separar aplicaciones y sistemas mediante una arquitectura basada en eventos. La separación garantiza que los componentes de aplicación individuales se puedan ampliar de forma independiente y que, a medida que se creen nuevos componentes de aplicación, puedan publicar o suscribirse a la cola.
Procesamiento fiable de mensajes
Queue garantiza que nunca se pierda un mensaje, incluso si el consumidor no está disponible para el consumo. Un mensaje publicado es persistente hasta que se suprime o caduca.
Si un mensaje no se consume correctamente, se envía a una cola de letras muertas (DLQ). Las colas de letras muertas le permiten aislar mensajes problemáticos para determinar por qué fallan. El aislamiento y el consumo de mensajes problemáticos de esta forma puede garantizar la entrega correcta a una aplicación de consumidor al menos una vez. Consulte Colas de mensajes con problemas de entrega para obtener más información.
Estándares abiertos
Se puede llamar a Queue mediante la definición de la API de RESTful (con una especificación de Open API) o mediante el protocolo STOMP estándar del sector.
Conceptos
El servicio Queue utiliza los siguientes conceptos.
- mensaje
- Un mensaje es un elemento de una cola que contiene una carga útil en forma de cadena. La cadena puede tener cualquier formato, incluidos XML, JSON, CSV, un mensaje binario Base64-encoded e incluso formatos comprimidos como gzip. Los productores y consumidores deben acordar el formato de los mensajes. Cada mensaje se procesa de forma independiente.
- productor
- Un cliente que envía mensajes a la cola.
- consumidor
- Un cliente que recibe mensajes de una cola. El consumidor también es responsable de suprimir los mensajes de la cola una vez recibidos los mensajes.
- Canal
- Destino efímero en una cola que se puede crear a petición. Los mensajes se pueden publicar en un canal específico dentro de una cola, y los consumidores pueden recuperar mensajes de canales específicos. Para obtener más información, consulte Canales.
- período de retención máximo
- El tiempo que una cola conserva un mensaje hasta que el sistema elimina automáticamente el mensaje, si no lo suprime un consumidor. El período máximo de retención se puede configurar en valores de 10 segundos a 7 días en el nivel de cola. El valor por defecto es 1 día.
- recuento de entregas
- Número de veces que se entrega un mensaje a un consumidor a petición.
- máximo de intentos de entrega
- Número de veces que se entrega un mensaje a un consumidor, pero no se actualiza ni suprime, antes de que se envíe a una cola de letras muertas (DLQ). El número máximo de intentos de entrega se puede configurar con valores del 1 al 20 en el nivel de cola. Para obtener más información, consulte Recuento de entregas.
- timeout del sondeo
- Período de tiempo que esperará un consumidor a que se consuman los mensajes. El aumento del timeout de sondeo reduce el número de veces que un consumidor solicita mensajes de la cola pero la respuesta indica que no hay mensajes disponibles para consumir. El timeout de sondeo se puede configurar en valores de 0 a 30 segundos en el nivel de cola, y los consumidores pueden definir el valor al solicitar mensajes. El valor por defecto es 30 segundos. Para obtener más información, consulte Sondeo largo.
- timeout de visibilidad
- Período de tiempo durante el cual un mensaje recibido de la cola por un consumidor no es visible para otros consumidores. El timeout de visibilidad se puede configurar en valores de 1 segundo a 12 horas en el nivel de cola, y los consumidores pueden definir el valor al solicitar mensajes. El valor por defecto es 30 segundos. Para obtener más información, consulte Bloqueo de mensajes.
- mensajes visibles
- Número de mensajes actualmente en una cola disponibles para su consumo.
- mensajes en curso
- Número de mensajes entregados a un consumidor pero que aún no se han suprimido. Los mensajes en curso no están disponibles para una nueva entrega hasta que haya transcurrido el timeout de visibilidad.
- cola de mensajes con problemas de entrega
- Si un mensaje no se consume correctamente y tiene más intentos de entrega que el máximo de intentos de entrega configurado, el mensaje se transfiere a una cola de mensajes con problemas de entrega (DLQ). Para obtener más información, consulte Colas de mensajes con problemas de entrega.
Garantías
El servicio Queue proporciona las siguientes garantías.
- Se garantiza que un mensaje publicado correctamente es duradero hasta que se suprime o haya transcurrido su período de retención. La publicación de un mensaje se considera correcta cuando el servicio Queue devuelve un acuse de recibo al productor. Es independiente de si se ha recibido o no la respuesta.
- Se garantiza que un mensaje dentro del timeout de visibilidad no se entregue a otro consumidor hasta que caduque ese timeout.
- El servicio Queue no suprimirá un mensaje antes de que finalice el período de retención. Un consumidor puede procesar y suprimir un mensaje durante su período de retención.
Autenticación y autorización
Cada servicio de Oracle Cloud Infrastructure se integra con IAM con fines de autenticación y autorización para todas las interfaces (la consola, el SDK o la CLI, y la API de REST).
Un administrador de la organización debe configurar grupos, compartimentos y políticas que controlen los usuarios que pueden acceder a determinados servicios y recursos, así como el tipo de acceso de que disponen. Por ejemplo, las políticas controlan quién puede crear usuarios, grupos y compartimentos, o quién puede crear y gestionar despliegues virtuales.
- Si es un administrador nuevo, consulte Introducción a las políticas.
- Para obtener más información sobre la escritura de políticas para este servicio, consulte Políticas de Queue.
- Para obtener más información sobre la escritura de políticas de recursos en otros servicios, consulte Referencia de políticas.
Formas de acceder a Queue
Puede acceder a Queue mediante la consola (una interfaz basada en explorador), la CLI de Oracle Cloud Infrastructure o las API de REST.
En esta guía se incluyen instrucciones para los tres métodos.
- La consola de OCI es fácil de usar y está basada en explorador. Para acceder a la consola, debe utilizar un explorador soportado.
- Las API de REST ofrecen la máxima funcionalidad, pero para usarlas se necesita experiencia en programación. Puntos finales y referencia de API proporciona información detallada sobre los puntos finales y los enlaces a los documentos de referencia de las API disponibles, incluidas las API de Queue.
- OCI proporciona SDK que interactúan con Queue.
- La interfaz de línea de comandos (CLI) proporciona un acceso rápido y una funcionalidad completa sin necesidad de programación.
- Para utilizar la CLI o las API de REST de OCI, puede configurar su entorno o utilizar Oracle Cloud Infrastructure Cloud Shell.
- Para utilizar la CLI o las API de REST en Cloud Shell, conéctese a la consola. Consulte Uso de Cloud Shell y Referencia de comandos de la CLI.
- Para instalar la CLI de OCI en su entorno, siga los pasos del inicio rápido de Instalación de CLI.
- Al utilizar las API de REST, consulte la documentación de la API de REST y los puntos finales y la referencia de API.
Límites de servicio
Cuando se registra en Oracle Cloud Infrastructure, se configura un conjunto de límites de servicio para su arrendamiento. El límite de servicio es la cuota o la asignación definida en un recurso. Revise los siguientes límites de servicio de los recursos de Queue.
Recurso | Detalles |
---|---|
Colas | 10 por arrendamiento por región |
Consulte la sección Límites de servicio para obtener más información sobre los límites de servicio y buscar las instrucciones para solicitar un aumento del límite. Para definir límites específicos de compartimentos en un recurso o familia de recursos, los administradores pueden utilizar cuotas de compartimentos.
Límites funcionales
Además de los límites de recursos de servicio, existen límites de cola específicos para las funciones y la funcionalidad.
Limitar | Detalles |
---|---|
Canales por cola | 256 por cola |
Tamaño máximo de solicitud PutMessage | 512 KB y 20 mensajes |
Tamaño máximo de respuesta GetMessage | 2 MB y 20 mensajes |
Tamaño máximo del mensaje | 256 KB |
Número máximo de mensajes en curso | 100 000 por cola |
Máximo de mensajes por cola | Sin límites |
Retención de mensajes | Máximo: 7 días Mínimo: 10 segundos Valor por defecto: 1 día |
Timeout de visibilidad de mensaje | Máximo: 12 horas Mínimo: 0 segundos en el nivel de mensaje Mínimo: 1 segundo en el nivel de cola Valor por defecto: 30 segundos |
Máximo de solicitudes GET simultáneas | 1000 solicitudes por segundo por cola |
Máximo de operaciones de mensajes | 1000 solicitudes por segundos por API por cola |
Ratio máximo de datos | Entrada por cola: 10 MB/s Salida por cola: 10 MB/s |
Timeout del sondeo | Máximo: 30 segundos Mínimo: 0 segundos |
Rendimiento de STOMP | 10 MB/s por conexión STOMP |
Almacenamiento | 20 GB por arrendamiento 2 GB por cola |