Présentation de Queue

Oracle Cloud Infrastructure (OCI) Queue est un service sans serveur entièrement géré qui permet de séparer les systèmes et d'effectuer des opérations asynchrones. Queue gère les données transactionnelles en grand nombre qui nécessitent des messages traités indépendamment sans perte ni duplication. Le service prend en charge le redimensionnement automatique et transparent basé sur le débit pour les émetteurs et les destinataires. Il utilise des normes ouvertes pour prendre en charge la communication avec n'importe quel client ou émetteur avec un effort minimal.

Le service OCI Queue repose sur quatre principes :

Publication
Des messages peuvent être publiés dans une file d'attente par des émetteurs, avec chacun une période de conservation. Si aucune période de conservation n'est spécifiée, le message expire selon une période de conservation définie au niveau de la file d'attente. Un message contient une charge utile sous la forme d'une chaîne.
Utilisation
Plusieurs destinataires peuvent utiliser les messages d'une seule file d'attente. Le nombre de destinataires peut évoluer avec le taux de messages publiés. Une fois qu'un message est distribué à un destinataire, il est masqué pour les autres destinataires pendant une durée prédéfinie, appelée délai d'expiration de visibilité.
Mise à jour
Si le traitement d'un message prend plus de temps que prévu, les destinataires peuvent prolonger le délai d'expiration de visibilité du message. La prolongation du délai d'expiration de visibilité empêche le renvoi du message dans la file d'attente et sa distribution à un autre destinataire.
Suppression
Une fois qu'un message a été distribué à un destinataire puis traité par celui-ci, il doit être supprimé afin d'empêcher toute nouvelle distribution à un autre destinataire.

Avantages

Le service Queue offre les avantages suivants.

Séparation des applications

Queue permet de séparer les applications et les systèmes à l'aide d'une architecture reposant sur les événements. La séparation garantit le redimensionnement indépendant des composants individuels de l'application et la publication dans la file d'attente ou l'abonnement à celle-ci, lorsque des composants d'application sont créés.

Schéma représentant un émetteur envoyant des messages à plusieurs files d'attente utilisées par un destinataire.

Traitement fiable des messages

Avec Queue, vous avez la garantie qu'un message n'est jamais perdu, même si le destinataire n'est pas disponible pour l'utiliser. Un message publié est persistant tant qu'il n'est pas supprimé ou qu'il n'a pas expiré.

Si un message n'est pas consommé correctement, il est envoyé dans une file d'attente de lettres mortes (DLQ). Les files d'attente de lettres mortes vous permettent d'isoler les messages problématiques pour déterminer pourquoi ils échouent. L'isolation et l'utilisation des messages problématiques de cette manière peuvent garantir qu'ils sont distribués au moins une fois à une application destinataire. Pour plus d'informations, reportez-vous à Files d'attente de lettres mortes.

Normes ouvertes

Queue peut être appelé à l'aide de la définition d'API RESTful (avec une spécification OpenAPI) ou à l'aide du protocole STOMP standard du secteur.

Concepts

Le service Queue utilise les concepts suivants.

message
Un message est un élément d'une file d'attente qui contient une charge utile sous la forme d'une chaîne. La chaîne peut avoir n'importe quel format, y compris XML, JSON, CSV, un message binaire Base64-encoded et même des formats compressés tels que gzip. Les producteurs et les consommateurs devraient se mettre d'accord sur le format du message. Chaque message est traité indépendamment.
émetteur
Client qui envoie des messages à la file d'attente.
destinataire
Client qui reçoit les messages d'une file d'attente. Le destinataire est également responsable de la suppression des messages de la file d'attente après leur réception.
canal
Destination éphémère dans une file d'attente qui peut être créée à la demande. Les messages peuvent être publiés sur un canal spécifique d'une file d'attente et les consommateurs peuvent extraire des messages à partir de canaux spécifiques. Pour plus d'informations, reportez-vous à Canaux.
période de conservation maximale
Durée pendant laquelle une file d'attente conserve un message jusqu'à ce qu'il soit automatiquement supprimé par le système, s'il n'est pas supprimé par un destinataire. La période de conservation maximale peut être configurée sur une valeur comprise entre 10 secondes et 7 jours au niveau de la file d'attente. La valeur par défaut est 1 jour.
nombre de distributions
Nombre de fois qu'un message est distribué à un destinataire sur demande.
nombre maximal de tentatives de distribution
Nombre de fois où un message est distribué à un consommateur, mais pas mis à jour ni supprimé, avant d'être envoyé à une file d'attente de lettres mortes (DLQ). Le nombre maximal de tentatives de distribution peut être configuré sur une valeur comprise entre 1 et 20 au niveau de la file d'attente. Pour plus d'informations, reportez-vous à Nombre de distributions.
délai d'expiration de l'interrogation
Durée pendant laquelle un destinataire doit attendre les messages à utiliser. L'augmentation du délai d'expiration de l'interrogation réduit le nombre de fois qu'un destinataire demande des messages de la file d'attente, mais la réponse indique qu'aucun message n'est disponible pour utilisation. Le délai d'expiration de l'interrogation peut être configuré sur une valeur comprise entre 0 et 30 secondes au niveau de la file d'attente, et les destinataires peuvent définir cette valeur lors de la demande de messages. La valeur par défaut est de 30 secondes. Pour plus d'informations, reportez-vous à Interrogation longue.
délai d'expiration de visibilité
Durée pendant laquelle un message reçu de la file d'attente par un destinataire n'est pas visible par les autres destinataires. Le délai d'expiration de visibilité peut être configuré sur une valeur comprise entre 1 seconde et 12 heures au niveau de la file d'attente, et les destinataires peuvent définir cette valeur lors de la demande de messages. La valeur par défaut est de 30 secondes. Pour plus d'informations, reportez-vous à Verrouillage de message.
messages visibles
Nombre de messages actuellement dans une file d'attente et pouvant être utilisés.
messages en attente de traitement
Nombre de messages distribués à un destinataire mais pas encore supprimés. Les messages en attente de traitement ne peuvent pas être redistribués tant que leur délai d'expiration de visibilité ne s'est pas écoulé.
file d'attente de lettres mortes
Si un message n'est pas utilisé et que le nombre de tentatives de distribution est supérieur au nombre maximal de tentatives de distribution configuré, le message est transféré vers une file d'attente de lettres mortes. Pour plus d'informations, reportez-vous à Files d'attente de lettres mortes.

Garanties

Le service Queue fournit les garanties suivantes.

  • La durabilité d'un message publié est garantie tant qu'il n'est pas supprimé ou que sa période de conservation n'est pas écoulée. La publication d'un message est considérée comme réussie lorsque le service Queue renvoie un accusé de réception à l'émetteur, peu importe si la réponse a été reçue.
  • La non-distribution d'un message se trouvant dans le délai d'expiration de visibilité à un autre destinataire est garantie jusqu'à ce que ce délai expire.
  • Un message ne sera pas supprimé par le service Queue avant la fin de sa période de conservation. Un destinataire peut traiter et supprimer un message pendant sa période de conservation.

Authentification et autorisation

Chaque service d'Oracle Cloud Infrastructure s'intègre à IAM pour l'authentification et l'autorisation, sur toutes les interfaces (consolekit SDK ou interface de ligne de commande, et API REST).

Un administrateur de votre organisation doit configurer des groupes, des compartiments  et des stratégies  qui déterminent les services et les ressources auxquels les utilisateurs peuvent accéder, ainsi que le type d'accès. Par exemple, les stratégies déterminent qui peut créer des utilisateurs, des groupes et des compartiments, ou qui peut créer et gérer des déploiements virtuels.

Méthodes d'accès à Queue

Vous pouvez accéder à Queue à l'aide de la console (interface basée sur un navigateur), de l'interface de ligne de commande Oracle Cloud Infrastructure ou d'API REST.

Les instructions relatives aux trois méthodes sont incluses dans ce guide.

Limites de service

Lors de l'inscription à Oracle Cloud Infrastructure, un ensemble de limites de service est configuré pour la location. La limite de service est l'allocation ou le quota défini sur une ressource. Consultez les limites de service suivantes pour les ressources Queue.

Ressource Détails
Files d'attente 10 par location et par région

Reportez-vous à Limites de service afin d'en savoir plus sur les limites de service et d'obtenir des instructions pour demander une augmentation de limite. Pour définir des limites propres au compartiment sur une ressource ou une famille de ressources, les administrateurs peuvent utiliser des quotas de compartiment.

Limites fonctionnelles

Outre les limites de ressources de service, des limites de file d'attente spécifiques existent pour les fonctions et les fonctionnalités.

Limite Détails
Canaux par file d'attente 256 par file d'attente
Taille maximale des demandes PutMessage 512 ko et 20 messages
Taille maximale des réponses GetMessage 2 Mo et 20 messages
Taille maximale des messages 256 KO
Nombre maximal de messages en attente de traitement 100 000 par file d'attente
Nombre maximal de messages par file d'attente Illimité
Conservation des messages Valeur maximale : 7 jours

Valeur minimale : 10 secondes

Valeur par défaut : 1 jour

Délai d'expiration de visibilité des messages Valeur maximale : 12 heures

Valeur minimale : 0 seconde au niveau du message

Valeur minimale : 1 seconde au niveau de la file d'attente

Valeur par défaut : 30 secondes

Nombre maximal de demandes GET simultanées 1 000 demandes par seconde et par file d'attente
Nombre maximal d'opérations de message 1 000 demandes par seconde par API et par file d'attente
Débit de données maximal Entrée par file d'attente : 10 Mo/s

Sortie par file d'attente : 10 Mo/s

Délai d'expiration de l'interrogation Valeur maximale : 30 secondes

Valeur minimale : 0 seconde

Débit STOMP 10 Mo/s par connexion STOMP
Stockage 20 Go par location

2 Go par file d'attente