As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conectando ao Amazon MQ
Os padrões de design a seguir podem melhorar a eficiência da conexão da sua aplicação ao agente do Amazon MQ.
Tópicos
- Nunca modifique ou exclua a interface de rede elástica do Amazon MQ
- Sempre usar pooling de conexão
- Sempre usar o transporte de failover para conectar-se a vários endpoints de operador
- Evite usar seletores de mensagens
- Preferir destinos virtuais a assinaturas duráveis
- Se estiver usando o emparelhamento da Amazon VPC, evite IPs de cliente no intervalo CIDR 10.0.0.0/16
Nunca modifique ou exclua a interface de rede elástica do Amazon MQ
Quando você cria um agente do Amazon MQ pela primeira vez, o Amazon MQ provisiona uma interface de rede elástica na Virtual Private Cloud (VPC) em sua conta e, por isso, requer uma série de permissões do EC2. A interface de rede permite que seu cliente (produtor ou consumidor) se comunique com o agente do Amazon MQ. Considera-se que a interface de rede está dentro do escopo de serviço do Amazon MQ, apesar de fazer parte da VPC de sua conta.
Atenção
Você não deve modificar ou excluir essa interface de rede. Modificar ou excluir a interface de rede pode causar uma perda permanente de conexão entre a VPC e o operador.
Sempre usar pooling de conexão
Em um cenário com um único produtor e um único consumidor (como o Getting Started with Amazon MQ tutorial), você pode usar uma única ActiveMQConnectionFactory
// Create a connection factory.
final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);
// Pass the sign-in credentials.
connectionFactory.setUserName(activeMqUsername);
connectionFactory.setPassword(activeMqPassword);
// Establish a connection for the consumer.
final Connection consumerConnection = connectionFactory.createConnection();
consumerConnection.start();
No entanto, em cenários mais realistas com vários produtores e consumidores, pode ser dispendioso e ineficiente criar um grande número de conexões para vários produtores. Nesses cenários, você deve agrupar solicitações de vários produtores usando a classe PooledConnectionFactory
nota
Os consumidores de mensagens nunca devem usar a classe PooledConnectionFactory
.
// Create a connection factory.
final ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(wireLevelEndpoint);
// Pass the sign-in credentials.
connectionFactory.setUserName(activeMqUsername);
connectionFactory.setPassword(activeMqPassword);
// Create a pooled connection factory.
final PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();
pooledConnectionFactory.setConnectionFactory(connectionFactory);
pooledConnectionFactory.setMaxConnections(10);
// Establish a connection for the producer.
final Connection producerConnection = pooledConnectionFactory.createConnection();
producerConnection.start();
Sempre usar o transporte de failover para conectar-se a vários endpoints de operador
Se você precisar que a aplicação se conecte a vários endpoints do agente — por exemplo, ao usar um modo de implantação ativo/em espera ou ao migrar de um agente de mensagens no local para o Amazon MQ — use o transporte de failover
failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617,ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)?randomize=true
Evite usar seletores de mensagens
É possível usar seletores JMS
Em geral, evite permitir que os consumidores roteiem mensagens, pois, para um bom desacoplamento de consumidores e produtores, ambos devem ser temporários.
Preferir destinos virtuais a assinaturas duráveis
Uma assinatura durável
Se estiver usando o emparelhamento da Amazon VPC, evite IPs de cliente no intervalo CIDR 10.0.0.0/16
Se você estiver configurando o emparelhamento da Amazon VPC entre a infraestrutura on-premises e o agente do Amazon MQ, não deverá configurar conexões de cliente com IPs no intervalo CIDR 10.0.0.0/16
.