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.
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.
- Si vous êtes un nouvel administrateur, reportez-vous à Introduction aux stratégies.
- Afin d'obtenir des détails sur l'écriture de stratégies pour ce service, reportez-vous à Stratégies Queue.
- Afin d'obtenir des détails sur l'écriture de stratégies pour les ressources dans d'autres services, reportez-vous à Référence de stratégie.
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.
- La console OCI est une interface simple d'utilisation basée sur un navigateur. Pour accéder à la console, vous devez utiliser un navigateur pris en charge.
- Les API REST fournissent le plus de fonctionnalités, mais nécessitent une expertise en programmation. La page Adresses et référence d'API fournit des détails sur les adresses et des liens vers les documents de référence d'API disponibles, y compris les API Queue.
- OCI fournit des kits SDK qui interagissent avec Queue.
- L'interface de ligne de commande offre un accès rapide et des fonctionnalités complètes sans avoir besoin de programmation.
- Pour utiliser l'interface de ligne de commande OCI ou les API REST, vous pouvez configurer votre environnement ou utiliser Oracle Cloud Infrastructure Cloud Shell.
- Pour utiliser l'interface de ligne de commande ou les API REST dans Cloud Shell, connectez-vous à la console. Reportez-vous à Utilisation de Cloud Shell et à Référence des commandes de l'interface de ligne de commande.
- Pour installer l'interface de ligne de commande OCI dans votre environnement, suivez les étapes de démarrage rapide dans Installation de l'interface de ligne de commande.
- Lorsque vous utilisez des API REST, reportez-vous à la documentation relative aux API REST et à Adresses et référence d'API.
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 |