Guide d'utilisation du QPID

Edge pour le cloud privé version 4.52.01 est livré avec Qpid Broker-J 8.0.6. Cette page décrit les considérations relatives à la mémoire et au disque pour le composant apigee-qpidd d'Edge for Private Cloud (avec l'agent d'agent basé sur Java). Les sections ci-dessous s'appliquent spécifiquement au cas d'utilisation Qpid d'Apigee et expliquent comment régler Qpid à l'aide des mécanismes de configuration d'Apigee.

Qpid dans Apigee

Dans Apigee, Qpid est utilisé dans deux workflows principaux:

  • Analyse
  • Monétisation

Dans ces deux workflows, le processeur de messages génère des messages, qui sont collectés par lots et envoyés à Qpid. Pour Analytics, les messages sont lus par Qpid-server. Pour la monétisation, ils sont lus par le serveur de classification (qui fait partie de management-server). Une fois lus, les messages par lot sont dégroupés et ingérés.

Les sections suivantes décrivent les configurations recommandées pour la mémoire et le disque avec Qpid. Ces configurations sont basées sur une taille de message unique de 2 Ko pour Analytics ou la monétisation. Avec une taille de lot par défaut de 50, chaque message dans Qpid ferait environ 100 Ko. Apigee permet aux proxys de modifier et d'ajouter des informations supplémentaires à un message (analyse ou monétisation). Dans les cas extrêmes, cela peut modifier considérablement la taille d'un seul message et du message par lot global dans Qpid. Bien que les recommandations générales concernant la mémoire et le disque décrites dans les sections ci-dessous soient valables même dans de tels cas, vous devrez peut-être apporter des ajustements supplémentaires à Qpid pour garantir le bon fonctionnement des opérations.

Mémoire

L'agent Qpid utilise deux types de mémoire: la mémoire hors tas de mémoire et la mémoire du tas de mémoire. Qpid stocke les messages dans une mémoire hors tas de mémoire et utilise la mémoire du tas de mémoire pour ses propres tâches internes, les messages directs dans les files d'attente et les échanges, etc. Dans la plupart des cas, Apigee recommande de conserver un ratio de 3:1 entre la mémoire hors tas de mémoire et le tas de mémoire pour Qpid Broker.

Les messages de la mémoire hors tas de mémoire sont conservés sur le disque. De plus, si l'utilisation totale de la mémoire hors tas de mémoire dépasse un certain seuil, Qpid est configuré pour faire déborder les messages sur le disque.

Par défaut, Apigee calcule le tas de mémoire et la mémoire hors tas de mémoire de l'agent Qpid en fonction de la mémoire disponible sur le nœud. Les scripts Apigee ont une limite flexible de 4 Go combinés pour le tas de mémoire et la mémoire hors tas de mémoire de l'agent Qpid. Si vous souhaitez ignorer ces limites, vous pouvez utiliser les deux configurations ci-dessous pour définir vos propres valeurs pour le tas de mémoire et la mémoire hors tas de mémoire de Qpid.

  • Configuration pour la mémoire du tas de mémoire : bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • Configuration de la mémoire hors tas de mémoire : bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

Pour en savoir plus sur le remplacement des configurations, consultez la section Modifier une configuration Qpid.

Pour en savoir plus, consultez la documentation de référence Apache Qpid sur la mémoire.

Disque

Le répertoire de données de Qpid Broker est $APIGEE_ROOT/data/apigee-qpidd. Les journaux de l'agent Qpid sont stockés dans $APIGEE_ROOT/var/log/apigee-qpidd.

Les performances du système de fichiers hébergeant le répertoire de données sont essentielles aux performances de l'agent dans son ensemble. Pour de meilleures performances, choisissez un appareil à faible latence et qui n'est pas utilisé par d'autres applications.

L'agent Qpid conserve ses messages dans le répertoire de données. Par défaut, l'agent accepte les messages jusqu'à ce que le système de fichiers hébergeant le répertoire de données soit rempli à 80 %. Vous pouvez modifier ce seuil en remplaçant la configuration illustrée dans l'exemple ci-dessous sur chaque nœud Qpid.

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

Dans cet exemple, le courtier rejette les nouveaux messages lorsque le système de fichiers sous-jacent est plein à 60 %.

Modifier une configuration Qpid

Pour modifier une configuration Qpid:

  1. Créez ou modifiez le fichier suivant :
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. Ajoutez, supprimez ou modifiez la configuration selon vos besoins. Par exemple, pour définir la mémoire de tas de mémoire maximale de Qpid Broker sur 6 Go, ajoutez le remplacement de configuration suivant dans le fichier :
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. Enregistrez les modifications, et assurez-vous que le fichier est détenu et lisible par l'utilisateur apigee :
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. Redémarrez le processus qpidd:
    apigee-service apigee-qpidd redémarrage