Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration des limites de ressources
Amazon MQ pour RabbitMQ prend en charge la configuration des limites de ressources des courtiers à partir de RabbitMQ 4. Lorsque vous créez un courtier, Amazon MQ applique automatiquement des valeurs par défaut à ces limites de ressources. Ces valeurs par défaut servent de garde-fous pour protéger la disponibilité de votre courtier tout en tenant compte des habitudes d'utilisation courantes des clients. Vous pouvez personnaliser le comportement de votre courtier en modifiant les valeurs de configuration des limites afin de mieux répondre à vos exigences spécifiques en matière de charge de travail. Pour plus de détails sur les valeurs par défaut et maximales autorisées, consultezDirectives de dimensionnement d'Amazon MQ pour RabbitMQ.
Noms des ressources et clés de configuration
| Nom de la ressource | Clé de configuration |
|---|---|
| Connexion | connection_max |
| Channel | channel_max_per_node |
| File d’attente | cluster_queue_limit |
| Vhost | vhost_max |
| Pelle | runtime_parameters.limits.shovel |
| Exchange | cluster_exchange_limit |
| Consommateur par canal | consumer_max_per_channel |
| Taille maximale du message | max_message_size |
Comment contourner les limites de ressources
Vous pouvez contourner les limites de ressources à l'aide de l'API Amazon MQ et de la console Amazon MQ.
L'exemple suivant montre comment remplacer la limite par défaut du nombre de files d'attente à l'aide de AWS CLI :
aws mq update-configuration --configuration-id <config-id> --data "$(echo "cluster_queue_limit=500" | base64 --wrap=0)"
Un appel réussi crée une révision de configuration. Vous devez associer la configuration à votre courtier RabbitMQ et redémarrer le courtier pour appliquer la dérogation. Pour plus de détails, voir RabbitMQ Broker Configurations
Section spécifique à l'instance : support lors de la configuration
Avec RabbitMQ 4, Amazon MQ prend en charge les sections des données de configuration. Les sections vous permettent de définir des limites de ressources spécifiques à l'instance au sein d'une configuration unique. Chaque section correspond à une combinaison spécifique de type d'instance et de mode de déploiement. Lorsque vous associez la configuration à un courtier, Amazon MQ applique automatiquement la section correspondante au type d'instance et au mode de déploiement du courtier.
Important
Le support des sections n'est disponible que sur RabbitMQ 4. Si vous essayez d'appliquer une configuration contenant des sections à un broker RabbitMQ 3, l'API renvoie un. BadRequestException
Syntaxe de section
Les sections sont délimitées par des doubles accolades au format suivant :
{{<host-instance-family>.<size>.<mode>}}
La mode valeur indique le mode de déploiement :
-
1— Courtier à instance unique -
3— Courtier en clusters
Toute autre valeur de mode n'est pas valide et l'API renvoie une erreur.
L'exemple suivant montre des données de configuration avec des sections pour deux types d'instances différents :
connection_max = 1000 {{m7g.large.3}} connection_max = 2000 {{m7g.large.3}} {{m7g.xlarge.3}} connection_max = 4000 {{m7g.xlarge.3}}
Clés de configuration autorisées dans les sections
Seules les clés de configuration des limites de ressources suivantes sont prises en charge dans une section. L'ajout d'une autre clé de configuration dans une section entraîne une erreur d'API.
max_message_sizechannel_max_per_nodeconnection_maxcluster_queue_limitvhost_maxconsumer_max_per_channelruntime_parameters.limits.shovelcluster_exchange_limit
Règles de priorité des sections
Lorsqu'une clé de configuration apparaît à la fois dans la section générique (niveau supérieur) et dans une section spécifique à l'instance, la valeur qui apparaît ultérieurement dans les données de configuration est prioritaire. Par exemple, l'application de la configuration suivante à un courtier de m7g.large cluster aboutit connection_max à 2000 :
connection_max = 1000 {{m7g.large.3}} connection_max = 2000 {{m7g.large.3}}
L'inversion de l'ordre est définie connection_max comme suit1000, car la valeur générique arrive en dernier :
{{m7g.large.3}} connection_max = 2000 {{m7g.large.3}} connection_max = 1000
Note
Si les données de configuration ne définissent pas de valeurs pour un type d'instance particulier, Amazon MQ applique les valeurs par défaut.
Exemples
Les exemples suivants montrent comment créer une configuration avec des sections et l'associer à un courtier à l'aide du AWS CLI.
Pour mettre à jour une configuration comportant des sections
Exécutez la commande suivante pour mettre à jour une configuration avec des limites de ressources spécifiques à l'instance pour plusieurs types d'instances :
aws mq update-configuration \ --configuration-id <config-id> \ --data "$(echo -e "connection_max = 1000\nchannel_max_per_node = 64\n\n{{m7g.large.3}}\nconnection_max = 2000\nchannel_max_per_node = 128\n{{m7g.large.3}}\n\n{{m7g.xlarge.3}}\nconnection_max = 4000\nchannel_max_per_node = 256\n{{m7g.xlarge.3}}" | base64 --wrap=0)"
Cette configuration définit les valeurs suivantes :
-
Valeurs par défaut génériques :
connection_max = 1000etchannel_max_per_node = 64 -
m7g.largecourtiers en clusters :connection_max = 2000etchannel_max_per_node = 128 -
m7g.xlargecourtiers en clusters :connection_max = 4000etchannel_max_per_node = 256
Pour associer la configuration à un broker
Après avoir mis à jour la configuration, associez-la à votre courtier et redémarrez-le pour appliquer les modifications. Exécutez la commande suivante :
aws mq update-broker \ --broker-id <broker-id> \ --configuration id=<config-id>,revision=<revision-number>
Erreurs de dérogation aux limites de ressources
L'association ou la création d'un broker avec des valeurs de configuration situées en dehors de la plage prise en charge entraîne une réponse d'erreur similaire à la suivante :
Configuration Revision N for configuration:cluster_queue_limit has limit: of value: 100000000 larger than maximum allowed limit:5000
Pour les valeurs par défaut et les plages maximales prises en charge par type d'instance et mode de déploiement, consultez Limites de ressources par défaut etLimite de ressources maximale d'Amazon MQ pour RabbitMQ.