Réseau de courtiers Amazon MQ - 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.

Réseau de courtiers Amazon MQ

Amazon MQ prend en charge la fonction de réseau d'agents d'ActiveMQ.

Un réseau d'agents est composé de plusieurs agents à instance unique actifs simultanément ou plusieurs agents actifs/en veille. Vous pouvez configurer des réseaux de courtiers dans diverses topologies (par exemple, concentrateur, hub-and-spokesarborescence ou maillage), en fonction des besoins de votre application, tels que la haute disponibilité et l'évolutivité. Par exemple, un réseau hub and spoke d'agents peut augmenter la résilience, préservant les messages si un agent n'est pas accessible. Un réseau d'agents avec une topologie de type hub peut collecter des messages d'un plus grand nombre d'agents acceptant les messages entrants et les concentrer vers des agents plus centraux, afin de mieux gérer la charge de nombreux messages entrants.

Pour un didacticiel et des informations de configuration détaillées, consultez les sections suivantes :

Voici les avantages liés à l'utilisation d'un réseau d'agents :

  • Créer un réseau d'agents vous permet d'augmenter votre débit agrégé et votre nombre maximal de connexions de producteurs et consommateurs en ajoutant des instances d'agent.

  • Vous pouvez garantir une meilleure disponibilité en permettant à vos producteurs et vos consommateurs d'être informés de plusieurs instances d'agent actives. Cela leur permet de se reconnecter à une nouvelle instance si celle à laquelle ils sont actuellement connectés devient indisponible.

  • Étant donné que les producteurs et les consommateurs peuvent immédiatement se reconnecter à un autre nœud dans le réseau d'agents, et puisqu'il n'est pas nécessaire d'attendre qu'une instance d'agent en veille soit promue, la reconnexion à un client au sein d'un réseau d'agents est plus rapide que pour un agent actif/en veille demandant un haut niveau de disponibilité.

Comment fonctionne un réseau d'agents ?

Amazon MQ prend en charge la fonction de réseau d'agents d'ActiveMQ de plusieurs façons. Tout d'abord, vous pouvez modifier les paramètres de configuration au sein de chaque agent afin de créer un réseau d'agents, comme vous le feriez avec des applications natives ActiveMQ. Ensuite, Amazon MQ propose des exemples de plans qui permettent d' AWS CloudFormation automatiser la création d'un réseau de courtiers. Vous pouvez déployer ces exemples de plans directement à partir de la console Amazon MQ, ou vous pouvez modifier les modèles AWS CloudFormation pour créer vos propres topologies et configurations.

Un réseau d'agents est établi en connectant un agent à un autre à l'aide de connecteurs de réseau. Une fois connectés, ces agents fournissent le transfert de messages. Par exemple, si Broker1 établit un connecteur de réseau avec Broker2, les messages sur Broker1 sont transférés à Broker2 s'il y a un consommateur sur cet agent pour la file d'attente ou la rubrique. Si le connecteur de réseau est configuré en tant que duplex, les messages sont également transférés depuis Broker2 vers Broker1. Les connecteurs de réseau sont configurés dans la configuration d'agent. Consultez Amazon MQ Broker Configuration Parameters. Par exemple, voici un exemple d'entrée networkConnector dans une configuration d'agent :

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Un réseau d'agents garantit que le flux de messages d'une instance d'agent à une autre, en transférant uniquement les messages vers les instances d'agent ayant des consommateurs correspondants. Dans l'intérêt des instances d'agent les unes à côté des autres dans le réseau, ActiveMQ envoie des messages à des rubriques consultatives concernant les producteurs et les consommateurs se connectant et se déconnectant du réseau. Lorsqu'une instance d'agent reçoit des informations sur un consommateur qui consomme à partir d'une destination en particulier, l'instance d'agent commence à transférer des messages. Pour plus d'informations, consultez Advisory Topics (Rubriques consultatives) dans la documentation ActiveMQ.

Comment un réseau d'agents gère-t-il les informations d'identification ?

Pour qu'un agent A se connecte à un agent B dans un réseau, l'agent A doit utiliser des informations d'identification valides, comme tout autre producteur ou consommateur. Au lieu de fournir un mot de passe dans la configuration <networkConnector> de l'agent A, vous devez d'abord créer un utilisateur sur l'agent A avec les mêmes valeurs qu'un autre utilisateur sur l'agent B (ceux-ci sont des utilisateurs séparés, uniques qui partagent les mêmes valeurs de nom d'utilisateur et de mot de passe). Lorsque vous spécifiez l'attribut userName dans la configuration <networkConnector>, Amazon MQ ajoute le mot de passe automatiquement lors de l'exécution.

Important

Ne spécifiez pas l'attribut password pour la configuration <networkConnector>. Nous vous déconseillons de stocker les mots de passe en texte brut dans les fichiers de configuration de l'agent, car les mots de passe deviennent visibles dans la console Amazon MQ. Pour de plus amples informations, veuillez consulter Configure Network Connectors for Your Broker.

Les courtiers doivent être sur le même pied d'VPCégalité ou avoir des pairs. VPCs Pour plus d’informations, consultez Prérequis dans le didacticiel Creating and Configuring a Network of Brokers.

Exemples de plans

Pour commencer à utiliser un réseau d'agents, Amazon MQ fournit des exemples de plans. Ces exemples de plans créent le déploiement d'un réseau de courtiers et l'utilisation de toutes les ressources associées. AWS CloudFormation Les deux exemples de plans disponibles sont les suivants :

  1. Réseau maillé d'agents à instance unique

  2. Réseau maillé d'agents actifs/en veille

Exemple de déploiement

Dans la page Create brokers (Créer des agents), sélectionnez l'un des exemples de plans et choisissez Suivant. Une fois les ressources créées, passez en revue les agents générés et leurs configurations dans la console Amazon MQ.

En créant des agents et en configurant différents éléments networkConnector dans les configurations d'agent, vous pouvez créer un réseau d'agents dans de nombreuses topologies. Pour plus d'informations sur la configuration d'un réseau d'agents, consultez Networks of Brokers (Réseaux d'agents) dans la documentation ActiveMQ.

Topologies de réseau d'agents

En déployant des agents, puis en configurant des entrées networkConnector dans leurs configurations, vous pouvez construire un réseau d'agents à l'aide de différentes topologies de réseau. Un connecteur de réseau fournit un transfert de messages à la demande entre les agents connectés. Les connexions peuvent être configurées en tant que duplex, c'est à dire que les messages sont transmis dans les deux sens entre les agents, ou en non duplex, c'est à dire que le transfert se propage uniquement d'un agent à un autre. Par exemple, si nous avons une connexion duplex entre les agents Broker1 et Broker2, les messages seront transférés de l'un à l'autre s'il y a un consommateur.

Connecteur duplex

Avec un connecteur de réseau duplex, les messages sont transférés de chaque agent à un autre. Ils sont transférés à la demande : s'il existe un consommateur sur l'agent Broker2 pour un message sur l'agent Broker1, le message est transféré. De la même façon, s'il existe un consommateur sur l'agent Broker1 pour un message sur l'agent Broker2, le message est également transféré.

Avec des connexions non duplex, les messages sont transférés uniquement d'un agent à un autre. Dans cet exemple, s'il existe un consommateur sur l'agent Broker2 pour un message sur l'agent Broker1, le message est transféré. Mais les messages ne seront pas transférés depuis l'agent Broker2 vers l'agent Broker1.

Connecteur à sens unique

En utilisant les deux connecteurs de réseau duplex et non duplex, il est possible de créer un réseau d'agents dans n'importe quel nombre de topologies de réseau.

Note

Dans chacun des exemples de topologie de réseau, les éléments networkConnector référencent le point de terminaison des agents auxquels ils se connectent. Remplacez les entrées du point de terminaison de l'agent dans les attributs uri avec les points de terminaison de vos agents. Consultez Listing brokers and viewing broker details.

Topologie maillée

Une topologie maillée fournit plusieurs agents qui sont tous connectés les uns aux autres. Cet exemple simple connecte trois agents à instance unique, mais vous pouvez configurer plusieurs agents en tant que maillage (mesh).

Topologie maillée

Cette topologie, et une qui inclut un maillage (mesh) de paires d'agents actifs/en veille, peut être créée à l'aide d'exemples de plans dans la console Amazon MQ. Vous pouvez créer ce déploiement d'exemples de plans pour voir un réseau d'agents opérationnel, et revoir la façon dont ils sont configurés.

Vous pouvez configurer un réseau maillé à trois agents comme celui-ci en ajoutant un connecteur de réseau à l'agent Broker1 qui permet des connexions duplex à la fois pour les agents Broker2 et Broker3, et une connexion à duplex simple entre les agents Broker2 et Broker3.

Connecteurs de réseau pour Broker1 :

<networkConnectors> <networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_1_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Connecteurs de réseau pour Broker2 :

<networkConnectors> <networkConnector name="connector_2_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

En ajoutant les connecteurs ci-dessus pour les configurations des agents Broker1 et Broker2, vous pouvez créer un maillage (mesh) entre ces trois agents qui transfère les messages entre tous les agents à la demande. Pour de plus amples informations, veuillez consulter Amazon MQ Broker Configuration Parameters.

Topologie en étoile

Dans une topologie en étoile, les messages sont conservés si un agent est perturbé sur une étoile. Les messages sont transférés d'un bout à l'autre, et seul l'agent central Broker1 est critique au fonctionnement du réseau.

Topologie en étoile

Pour configurer un réseau d'agents en étoile dans cet exemple, vous pouvez ajouter un networkConnector à chacun des agents sur les étoiles dans la configuration de l'agent Broker1.

<networkConnectors> <networkConnector name="connector_hub_and_spoke_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_4" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="connector_hub_and_spoke_5" userName="myCommonUser" duplex="true" uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Topologie du concentrateur

Dans cet exemple de topologie, les trois agents en bas peuvent traiter un grand nombre de connexions, et ces messages sont concentrés vers les agents Broker1 et Broker2. Chacun des autres agents dispose d'une connexion non duplex avec les agents les plus centraux. Pour adapter la capacité de cette topologie, vous pouvez ajouter des agents supplémentaires qui reçoivent des messages et concentrent ces messages dans les agents Broker1 et Broker2.

Topologie du concentrateur

Pour configurer cette topologie, chacun des agents en bas contiendrait un connecteur de réseau pour chacun des agents pour lesquels ils concentrent des messages.

Connecteurs de réseau pour Broker3 :

<networkConnectors> <networkConnector name="3_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="3_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Connecteurs de réseau pour Broker4 :

<networkConnectors> <networkConnector name="4_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="4_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Connecteurs de réseau pour Broker5 :

<networkConnectors> <networkConnector name="5_to_1" userName="myCommonUser" duplex="false" uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="5_to_2" userName="myCommonUser" duplex="false" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Entre régions

Pour configurer un réseau de courtiers couvrant plusieurs AWS régions, déployez des courtiers dans ces régions et configurez des connecteurs réseau vers les points de terminaison de ces courtiers.

Topologie de maillage (mesh) entre régions

Pour configurer un réseau d'agents comme dans cet exemple, vous pouvez ajouter des entrées networkConnectors aux configurations des agents Broker1 et Broker4 qui référencent les points de terminaison de niveau filaire de ces agents.

Connecteurs de réseau pour Broker1 :

<networkConnectors> <networkConnector name="1_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="1_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="1_to_4" userName="myCommonUser" duplex="true" uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Connecteur de réseau pour Broker2 :

<networkConnectors> <networkConnector name="2_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Connecteurs de réseau pour Broker4 :

<networkConnectors> <networkConnector name="4_to_3" userName="myCommonUser" duplex="true" uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/> <networkConnector name="4_to_2" userName="myCommonUser" duplex="true" uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/> </networkConnectors>

Basculement dynamique avec des connecteurs de transport

En plus de configurer les éléments networkConnector, vous pouvez configurer les options transportConnector d'agent pour activer le basculement dynamique et rééquilibrer les connexions lorsque des agents sont ajoutés ou supprimés du réseau.

<transportConnectors> <transportConnector name="openwire" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/> </transportConnectors>

Dans cet exemple, updateClusterClients et rebalanceClusterClients sont définis sur true. Dans ce cas, les clients recevront une liste d'agents dans le réseau et vous leur demanderez d'effectuer un rééquilibrage si un nouvel agent est ajouté.

Options disponibles :

  • updateClusterClients : Transmet aux clients des informations sur les modifications apportées au réseau de topologie d'agent.

  • rebalanceClusterClients : Entraîne le rééquilibrage des clients entre les agents lorsqu'un nouvel agent est ajouté à un réseau d'agents.

  • updateClusterClientsOnRemove : Met à jour les clients avec des informations de topologie lorsqu'un agent quitte un réseau d'agents.

Quand updateClusterClients est défini sur true, les clients peuvent être configurés pour se connecter à un seul agent dans un réseau d'agents.

failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)

Lorsqu'un nouveau courtier se connecte, il reçoit une liste URIs de tous les courtiers du réseau. Si la connexion à l'agent échoue, un basculement dynamique peut être effectué sur l'un des agents fournis lorsque la connexion a été établie.

Pour plus d'informations sur le basculement, consultez Broker-side Options for Failover dans la documentation Active MQ.