Partage de la charge de travail avec les destinations de file d'attente

Si vous ajoutez un cluster de serveurs à un bus d'intégration de services et déployez un ou plusieurs moteurs de messagerie dans le cluster, vous pouvez configurer le membre de bus du cluster à des fins d'évolutivité. Les moteurs de messagerie du membre de bus du cluster partagent la charge de travail de messagerie associée aux destinations de file d'attente déployées sur le cluster.

Voir Haute disponibilité de l'intégration de services et configurations de partage de la charge de travail pour plus d'informations sur la configuration des moteurs de messagerie en vue du partage de la charge de travail.

Lorsque vous déployez une destination de file d'attente sur un cluster, la file d'attente est automatiquement partitionnée sur l'ensemble des moteurs de messagerie associés au cluster.
  • S'il existe un seul moteur de messagerie dans le cluster, la destination est localisée par ce moteur de messagerie. La destination n'est pas partitionnée.
  • Si le cluster comporte plusieurs moteurs de messagerie la destination est partitionnée sur tous les moteurs de messagerie du cluster. Chaque moteur de messagerie traite un sous-ensemble des messages gérés par la destination.
Les caractéristiques de disponibilité d'une partition sont identiques à celles du moteur de messagerie par lequel elle est localisée.
Remarque : Si une application fournisseur ou consommatrice utilise une destination d'alias configuré dans un sous-ensemble de points de file d'attente, le comportement suivant s'applique à ce sous-ensemble et non pas à l'ensemble des points de file d'attente de la destination de file d'attente.

Envoi de messages à une destination de file d'attente partitionnée

Généralement, vous créez un membre de bis de cluster évolutif et partitionnez une destination de file d'attente si un même serveur ne peut pas prendre en charge l'intégralité de la charge de traitement des messages de la file d'attente. Pour être utilisée de manière efficace, une file d'attente partitionnée requiert plusieurs destinataires avec au moins un destinataire utilisant des messages de chaque partition. Un cluster de beans gérés par message (MDB) en est une utilisation type. Pour des informations détaillées sur la manière dont un bean géré par message utilise les messages d'une destination en clusters, voir Connexion d'un bean géré par message dans un cluster.

Comportement par défaut du système de messagerie si l'application productrice est connectée à un moteur de messagerie d'un membre de bus de cluster qui héberge la destination de file d'attente

Par défaut, l'application productrice préfère envoyer tous ses messages au point de file d'attente local. Ce comportement maximise les performances de distribution des messages en minimisant la distance que le message doit parcourir jusqu'au point de file d'attente.

Figure 1. Comportement par défaut : Les messages sont envoyés au point de file d'attente local
Cette illustration décrit la façon dont les messages sont envoyés au point de file d'attente local.
Si le point de file d'attente local n'est pas disponible, les messages sont traités comme s'il n'existait aucun point de file d'attente local. Un point de file d'attente n'est pas disponible pour les nouveaux messages si :
  • Le moteur de messagerie qui possède le point de file d'attente n'est pas disponible (par exemple, le moteur de messagerie est arrêté).
  • Le point de file d'attente atteint son nombre maximal de messages.
  • Le point de file d'attente avait la possibilité de lui envoyer des messages en étant désactivé.
Comportement par défaut du système de messagerie si l'application productrice est connectée à un moteur de messagerie d'un membre de bus qui n'héberge pas la destination de file d'attente

Par défaut, la charge de travail du système de messagerie équilibre les messages entre les points de file d'attente disponibles.

Dans cette illustration, une application fournisseur est connectée à un moteur de messagerie d'un membre de bus qui ne contient pas la destination de file d'attente avec sa charge de travail de messages équilibrée sur les points de file d'attente disponibles.

Figure 2. Comportement par défaut : La charge de travail des messages est équilibrée entre tous les points de file d'attente
Cette illustration décrit la façon dont la charge de travail des messages est équilibrée entre tous les points de file d'attente.
Comportement configurable lorsque l'application productrice est connectée à un moteur de messagerie d'un membre de bus qui héberge la destination de file d'attente

Si vous souhaitez que la charge de tous les messages de l'application productrice soit équilibrée entre tous les points de file d'attente d'une destination de file d'attente, même si elle est connectée à un moteur de messagerie avec un point de file d'attente, désactivez l'option de configuration par défaut Prefer local queue point sur le producteur de messages. Cette option est disponibles pour les fournisseurs de messages JMS et les messages entrants provenant des connexions de bus externe qui utilisent WebSphere Application Server Version 7.0 ou ultérieures.

Dans cette illustration, une application fournisseur est connectée à un moteur de messagerie d'un membre de bus qui contient la destination de file d'attente. L'option de "préférence de point de file d'attente locale" de l'application fournisseur est désactivée. La charge de travail de ces messages est équilibrée entre tous les points de file d'attente.

Figure 3. Désactivation de l'option Prefer local queue point : La charge de travail des messages est équilibrée entre tous les points de file d'attente
Cette illustration décrit la façon dont la charge de travail des messages est équilibrée entre tous les points de file d'attente lorsque l'option de préférence de point de file d'attente local est désactivée.
Toutefois, si la charge de travail des connexions d'un certain nombre d'applications productrices sont également équilibrées entre tous les moteurs de messagerie du membre de bus, envisagez de conserver le comportement par défaut Prefer local queue point, pour des raisons de performances. En effet, le comportement par défaut :
  • Equilibre la charge des messages de toutes les applications productrice entre tous les points de file d'attente
  • Minimise la nécessité d'envoyer les messages du moteur de messagerie connecté à un autre moteur de messagerie du même membre de bus de cluster
Comportement configurable lorsque l'application productrice est connectée à un moteur de messagerie d'un membre de bus de cluster qui n'héberge pas la destination de file d'attente

Si vous souhaitez envoyer tous les messages générés lors d'une même session d'un fournisseur d'applications au même point de file d'attente, vous pouvez configurer l'affinité des messages. La charge de travail des messages n'est alors pas équilibrée entre plusieurs points de file d'attente.

Envisagez de configurer l'affinité des messages pour une application si vous souhaitez envoyer des ensembles de messages au même point de file d'attente pour être traités dans l'ordre, par une seule instance d'un destinataire. Le système sélectionne le point de file d'attente vers lequel tous les messages sont envoyés, en fonction de l'option de configuration Prefer local queue point de ce fournisseur d'applications. Cette option est disponible pour les fournisseurs de messages JMS et les messages entrants provenant des connexions de bus externe qui utilisent WebSphere Application Server Version 7.0 ou ultérieures.

Dans cette illustration, une application fournisseur se connecte à un moteur de messagerie d'un membre de bus qui ne contient pas la destination de file d'attente. L'affinité des messages est configurée pour l'application productrice. Tous les messages sont envoyés à un point de file d'attente.

Figure 4. Affinité des messages : Tous les messages générés sont envoyés au même point de file d'attente
Cette illustration décrit la façon dont tous les messages générés sont envoyés au même point de file d'attente.

Si le point de file d'attente n'est plus disponible, les autres messages envoyés à partir de cette application sont placés en file d'attente de transit vers le point de file d'attente sélectionné ou l'opération d'envoi est rejetée. Ce comportement revient à envoyer des messages à une destination de file d'attente ne possédant qu'un seul point de file d'attente.

Utilisation de messages d'une destination de file d'attente partitionnée

Lorsqu'une session de destinataire est créée, le destinataire est lié à une partition de la destination. Si le destinataire est connecté à un moteur de messagerie comportant une partition locale de la destination, il est lié à cette partition. Si le destinataire est connecté à un moteur de messagerie ne comportant pas de partition de la destination, il est lié à une partition d'un autre moteur de messagerie sélectionné dynamiquement par le gestionnaire de charge de travail. Une fois lié, un destinataire ne reçoit que les messages de la partition liée. Par défaut, si la partition à laquelle un destinataire est lié ne contient pas de messages, le destinataire ne reçoit pas les messages d'autres partitions, mêmes si ces dernières contiennent des messages.

Si vous configurez une destination partitionnée dans un cluster qui ne possède pas de destinataires locaux, il est important de posséder au moins un destinataire pour chaque partition de la destination, pour s'assurer que tous les messages sont réceptionnés. Pour cela, vous pouvez cibler des destinataires qui se connecteront à des moteurs de messagerie spécifiques possédant un point de file d'attente. Les beans gérés par message représentent un type de destinataire de messages spécifique. Pour des informations détaillées sur leur comportement lors de l'utilisation de messages à partir d'une destination partitionnée, voir Connexion d'un bean géré par message dans un cluster.

Si vous souhaitez qu'une application destinataire reçoive des messages de tous les points de file d'attente disponibles d'une destination, vous pouvez configurer le destinataire de messages.

S'il existe un grand nombre de messages de petite taille et que les beans MDB ne pourront pas tous les traiter, vous pouvez utiliser des moteurs de messagerie dont la charge de travail est équilibrée avec les files d'attente partitionnées, comme décrit dans cette rubrique. Si, toutefois, les beans MDB effectuent un traitement plus approfondi d'un nombre inférieur de messages, un seul moteur de messagerie est requis, mais vous devez déployer les beans MDB sur le plus de serveurs possible, que ces serveurs possèdent ou non des moteurs de messagerie et qu'ils n'appartiennent pas à la même cellule. Une situation standard est lorsque les beans MDB mettent à jour une base de données utilisateur. Pour des informations sur la configuration du déploiement des beans MDB sur plusieurs serveurs, voir Configuration de la régulation de bean géré par message pour le fournisseur de messagerie par défaut.

Comportement par défaut du système de messagerie lorsqu'un client utilise les messages d'une destination partitionnée

Lorsque la session d'une application destinataire est créée, cette session est associée à l'un des points de file d'attente de la destination de file d'attente. Si la destination de file d'attente possède plusieurs points de file d'attente, le système en choisit un. Par défaut, le système de messagerie préfère associer le destinataire au point de file d'attente local sur le moteur de messagerie connecté. Si aucun point de file d'attente locale n'est disponible dans le moteur de messagerie connecté, le système choisit une autre file d'attente en utilisant le gestionnaire de charge de travail WebSphere Application Server, qui utilise un algorithme de permutation circulaire pondéré.

Le comportement par défaut tente de maximiser les performances d'utilisation des messages des points de file d'attente en limitant le nombre de messages disponibles pour le destinataire à ceux de son point de file d'attente associé. Le destinataire ne peut pas utiliser les messages des autres points de file d'attente, même si son point de file d'attente associé ne contient pas de message, mais que d'autres points de file d'attente en contiennent.

Dans cette illustration, une application destinataire est connectée à un moteur de messagerie sans point de file d'attente locale. Seuls les messages de la file d'attente associée sont utilisés.

Figure 5. Comportement par défaut : Seuls les messages de la file d'attente associée sont utilisés
Cette illustration décrit la façon dont seuls les messages de la file d'attente associée sont utilisés.
Comportement configurable du système de messagerie lorsqu'un client utilise les messages d'une destination partitionnée

Vous pouvez configurer un destinataire de messages de sorte que son point de file d'attente associé collecte les messages de tous les points de file d'attente disponibles d'une destination et les rend visibles au destinataire.

Envisagez de configurer la collecte des messages si vous souhaitez qu'un client traite une file d'attente partitionnée comme une file d'attente non partitionnée. Toutefois, la collecte de messages à partir de plusieurs points de file d'attente est considérablement plus lente que l'utilisation des messages à partir d'un seul point de file d'attente. Par conséquent, reconfigurez si possible la destination pour n'avoir qu'un seul point de file d'attente ou utilisez une destination d'alias pour restreindre les producteurs de messages et les destinataires à un seul point de file d'attente. Si l'évolutivité de plusieurs points de file d'attente est requise et que les performances sont importantes, étudiez d'autres solutions que la collecte des messages.

En mode Collecte des messages, le destinataire risque de ne pas voir les messages dans l'ordre suivant lequel ils sont conservés dans les points de file d'attente. C'est pourquoi l'ordre des messages n'est pas conservé.

Cette option est disponible pour les producteurs de messages JMS et les messages entrants via des connexions de bus externe à l'aide de WebSphere Application Server Version 7.0 ou ultérieures.

Dans cette illustration, une application destinataire se connecte à un moteur de messagerie sans point de file d'attente locale. La collecte des messages est activée pour l'application destinataire. Le point de file d'attente associé collecte les messages de tous les points de file d'attente disponibles d'une destination et les rend accessibles au destinataire.

Figure 6. Collecte des messages : messages utilisés à partir de tous les points de file d'attente
Cette illustration décrit l'application destinataire pour laquelle la collecte des messages est activée.

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjt0014_
Nom du fichier : cjt0014_.html