

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
<a name="configure-resource-limits"></a>

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, consultez[Directives de dimensionnement d'Amazon MQ pour RabbitMQ](rabbitmq-sizing-guidelines.md).

## Noms des ressources et clés de configuration
<a name="resource-limit-configuration-keys"></a>


| 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
<a name="override-resource-limits"></a>

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](rabbitmq-broker-configuration-parameters.md) 

## Section spécifique à l'instance : support lors de la configuration
<a name="section-support-configuration-data"></a>

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 suit`1000`, 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.large`courtiers en clusters : `connection_max = 2000` et `channel_max_per_node = 128`
+ `m7g.xlarge`courtiers 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
<a name="resource-limit-override-errors"></a>

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](rabbitmq-resource-limits-configuration.md) et[Limite de ressources maximale d'Amazon MQ pour RabbitMQ](rabbitmq-resource-hard-limit.md).