View a markdown version of this page

Configuration des limites de ressources - Amazon MQ

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_size

  • channel_max_per_node

  • connection_max

  • cluster_queue_limit

  • vhost_max

  • consumer_max_per_channel

  • runtime_parameters.limits.shovel

  • cluster_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 = 1000 et channel_max_per_node = 64

  • m7g.largecourtiers en clusters : connection_max = 2000 et channel_max_per_node = 128

  • m7g.xlargecourtiers en clusters : connection_max = 4000 et channel_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.