Red de corredores Amazon MQ - Amazon MQ

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Red de corredores Amazon MQ

Amazon MQ es compatible con la característica de red de agentes de ActiveMQ.

Una red de agentes está compuesta por varios agentes de una sola instancia activos al mismo tiempo o agentes activos/en espera. Puede configurar redes de intermediarios en una variedad de topologías (por ejemplo, concentrador, árbol o malla) hub-and-spokes, en función de las necesidades de la aplicación, como la alta disponibilidad y la escalabilidad. Por ejemplo, una red de agentes en estrella puede aumentar la resiliencia, ya que preserva los mensajes si no se puede obtener acceso a un agente. Una red de agentes con topología de concentrador puede recopilar mensajes de un mayor número de agentes que aceptan mensajes entrantes y concentrarlos en agentes más centrales para manejar mejor la carga de muchos mensajes entrantes.

Para obtener acceso a un tutorial e información detallada de la configuración, consulte los siguientes temas:

A continuación se describen los beneficios de usar una red de agentes:

  • La creación de una red de agentes le permite aumentar su capacidad de proceso total y un recuento máximo de conexiones de productor y consumidor añadiendo instancias de agente.

  • Puede garantizar una mayor disponibilidad permitiendo a los productores y consumidores que tengan en cuenta diversas instancias de agente activas. Esto les permite volver a conectarse a una nueva instancia si a la que están actualmente conectados deja de estar disponible.

  • Dado que los productores y los consumidores pueden volver a conectar a otro nodo de la red de agentes de inmediato y, dado que no hay necesidad de esperar a promocionar una instancia de agente en espera, la reconexión de cliente en una red de agentes es más rápida que para unagente activo/en espera para alta disponibilidad.

¿Cómo funciona una red de agentes?

Amazon MQ admite la característica de red de agentes de ActiveMQ de varias maneras. En primer lugar, puede editar los parámetros en la configuración de cada agente para crear una red de agentes, de la misma forma en que lo haría con ActiveMQ nativo. En segundo lugar, Amazon MQ tiene ejemplos de planos que se utilizan AWS CloudFormation para automatizar la creación de una red de corredores. Puede implementar estos proyectos de muestra directamente desde la consola de Amazon MQ, o bien puede editar las plantillas de AWS CloudFormation relacionadas para crear sus propias topologías y configuraciones.

Una red de los agentes se establece conectando un agente a otro mediante conectores de red. Una vez que se han conectado, estos agentes proporcionan el reenvío de mensajes. Por ejemplo, si Agente1 establece un conector de red con Agente2, los mensajes en Agente1 se reenvían a Agente2 si hay un consumidor en dicho agente para la cola o tema. Si el conector de red está configurado como duplex, también se reenvían mensajes desde Agente2 a Agente1. Los conectores de red están configurados en la configuración del agente. Consulte, Amazon MQ Broker Configuration Parameters. Por ejemplo, esta es una entrada de networkConnector de ejemplo en una configuración de agente:

<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>

Una red de agentes garantiza que los mensajes van desde una instancia de agente a otra, reenviando mensajes únicamente a las instancias de agente que tienen los consumidores correspondientes. A fin de facilitar las instancias de agente adyacentes entre sí dentro de la red, ActiveMQ envía mensajes a temas de consultoría sobre productores y consumidores que se conectan y desconectan de la red. Cuando una instancia de agente recibe información acerca de un consumidor que consume desde un destino determinado, la instancia de agente comienza a reenviar mensajes. Para obtener más información, consulte Temas de consultoría en la documentación de ActiveMQ.

¿Cómo administra las credenciales una red de agentes?

Para que un agente A se conecta a un agente B en una red, el agente A debe utilizar credenciales válidas, como cualquier otro productor o consumidor. En lugar de proporcionar una contraseña en la configuración de <networkConnector> del agente A, debe crear primero un usuario en el agente A con los mismos valores que otro usuario del agente B (se trata de usuarios independientes y únicos que comparten los mismos valores de nombre de usuario y contraseña). Cuando se especifica el atributo userName en la configuración <networkConnector>, Amazon MQ agregará la contraseña de forma automática en tiempo de ejecución.

importante

No especifique el atributo password para <networkConnector>. No recomendamos almacenar contraseñas de texto no cifrado en los archivos de configuración del agente, dado que esto hace que las contraseñas estén visibles en la consola de Amazon MQ. Para obtener más información, consulte Configure Network Connectors for Your Broker.

Los corredores deben estar en el mismo mercado VPC o en pares. VPCs Para obtener más información, consulte Requisitos previos en el tutorial de Creating and Configuring a Network of Brokers.

Proyectos de muestra

Para empezar a utilizar una red de agentes, Amazon MQ incluye proyectos de muestra. Estos modelos de ejemplo crean una implementación de Network of Brokers y todos los recursos relacionados utilizando,. AWS CloudFormation Los dos proyectos de muestra disponibles son:

  1. Red de malla de agentes de una sola instancia

  2. Red de malla de agentes activos/en espera

Implementaciones de muestras

En la página Create brokers (Crear agentes), seleccione uno de los proyectos de muestra y elija Next (Siguiente). Una vez que se han creado los recursos, revise los agentes generados y sus configuraciones en la consola de Amazon MQ.

Mediante la creación de los agentes y la configuración de diferentes elementos networkConnector en las configuraciones de agentes, puede crear una red de agentes en diversos tipos de topologías. Para obtener más información sobre cómo configurar una red de agentes, consulte Redes de agentes en la documentación de ActiveMQ.

Topologías de redes de agentes

Mediante la implementación de los agentes y, a continuación, la configuración de entradas networkConnector en sus configuraciones, puede crear una red de agentes que utilicen diferentes topologías de red. Un conector de red proporciona reenvío de mensajes bajo demanda entre agentes conectados. Las conexiones se pueden configurar como dúplex, donde los mensajes se reenvían de forma bidireccional entre los agentes o no dúplex, donde el reenvío solo se propaga de un agente a otro. Por ejemplo, si tenemos una conexión dúplex entre Agente1 y Agente2, los mensajes se reenviarán entre sí si hay un consumidor.

Conector dúplex

Con un conector de red dúplex, los mensajes se reenvían desde cada agente al otro. Se reenvían bajo demanda: si hay un consumidor en Agente2 para un mensaje en Agente1, se reenvía el mensaje. Del mismo modo, si hay un consumidor en Agente1 para un mensaje en Agente2 el mensaje también se reenvía.

Para conexiones no dúplex, los mensajes se reenvían solo desde un agente al otro. En este ejemplo, si hay un consumidor en Agente2 para un mensaje en Agente1, el mensaje se reenvía. Sin embargo, los mensajes no se reenvían desde Agente2 a Agente1.

Conector unidireccional

Utilizando los conectores de red dúplex y no dúplex, es posible crear una red de agentes en cualquier cantidad de topologías de red.

nota

En cada uno de los ejemplos de topología de red, los elementos networkConnector hacen referencia al punto de enlace de los agentes a los que se conectan. Sustituya las entradas de punto de enlace de agente en los atributos uri con los puntos de enlace de sus agentes. Consulte, Listing brokers and viewing broker details.

Topología de malla

Una topología de malla ofrece varios agentes conectados entre sí. Este ejemplo sencillo conecta tres agentes de una sola instancia, pero puede configurar más agentes como una malla.

Topología de malla

Esta topología y la que incluye una malla de pares de agentes activos/en espera se pueden crear mediante proyectos de muestra en la consola de Amazon MQ. Puede crear la implementación de estos proyectos de muestra para ver una red de agentes en funcionamiento y revisar cómo se configuran.

Puede configurar una red de malla de tres agentes como esta añadiendo un conector de red a Agente1 que realiza conexiones dúplex a Agente2 y Agente3 y una conexión de dúplex única entre Agente2 y Agente3.

Conectores de red para el Agente1:

<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>

Conectores de red para el Agente2:

<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>

Al añadir los conectores anteriores a las configuraciones de Agente1 y Agente2, puede crear una malla entre estos tres agentes que reenvía mensajes entre todos los agentes bajo demanda. Para obtener más información, consulte Amazon MQ Broker Configuration Parameters.

Topología radial

En una topología radial, los mensajes se conservan si hay una interrupción a cualquier agente radial. Los mensajes se reenvían y solo el Agente1 central es fundamental para el funcionamiento de la red.

Topología radial

Para configurar la red de agentes radial de este ejemplo, podría agregar un networkConnector a cada uno de los agentes en los radios de la configuración de Agente1.

<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>

Topología de concentrador

En esta topología de ejemplo, los tres agentes de la parte inferior pueden administrar un gran número de conexiones y esos mensajes se concentran en Agente1 y Agente2. Cada uno de los otros agentes tiene una conexión no dúplex con los agentes más centrales. Para ampliar la capacidad de esta topología, puede añadir agentes adicionales que reciben mensajes y concentrar dichos mensajes en Agente1 y Agente2.

Topología de concentrador

Para configurar esta topología, cada uno de los agentes de la parte inferior contendría un conector de red a cada uno de los agentes en los que se concentran mensajes.

Conectores de red para el Agente3:

<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>

Conectores de red para el Agente4:

<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>

Conectores de red para el Agente5:

<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 regiones

Para configurar una red de intermediarios que abarque AWS regiones, despliegue agentes en esas regiones y configure los conectores de red para los puntos finales de dichos agentes.

Topología de malla entre regiones

Por configurar una red de agentes como en este ejemplo, podría añadir entradas networkConnectors a las configuraciones de Agente1 y Agente4 que hacen referencia a los puntos de enlace de nivel de cable de esos agentes.

Conectores de red para el Agente1:

<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>

Conector de red para el Agente2:

<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>

Conectores de red para el Agente4:

<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>

Conmutación por error dinámica con conectores de transporte

Además de configurar los elementos de networkConnector, puede configurar las opciones de transportConnector del agente para permitir la conmutación por error dinámica y reequilibrar las conexiones cuando se añaden o quitan agentes en la red.

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

En este ejemplo, tanto updateClusterClients como rebalanceClusterClients se han establecido en true. En este caso, se proporcionará a los clientes una lista de los agentes de la red y se les pedirá que se reequilibren si se une un nuevo agente.

Opciones disponibles:

  • updateClusterClients: pasa información a los clientes sobre los cambios efectuados en la red de topología del agente.

  • rebalanceClusterClients: hace que los clientes se reequilibren entre los agentes si se añade un nuevo agente a una red de agentes.

  • updateClusterClientsOnRemove: actualiza los clientes con información sobre la topología cuando un agente abandona una red de agentes.

Si updateClusterClients está establecido en true, se pueden configurar los clientes para que se conecten a un único agente de la red de agentes.

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

Cuando un nuevo corredor se conecte, recibirá una lista de todos los corredores URIs de la red. Si se produce un error al conectar el agente, se puede cambiar dinámicamente a uno de los agentes que se proporcionaron al conectarse.

Para obtener más información acerca de la conmutación por error, consulte Broker-side Options for Failover en la documentación de Active MQ.