Connessione ad Amazon MQ - Amazon MQ

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connessione ad Amazon MQ

I seguenti modelli di progettazione possono migliorare l'efficacia della connessione dell'applicazione alil broker Amazon MQ.

Non modificare né eliminare mai l'interfaccia di rete elastica Amazon MQ

La prima volta che crei un broker Amazon MQ, Amazon MQ esegue il provisioning di un'interfaccia di rete elastica nel Virtual Private Cloud (VPC) nel tuo account e, pertanto, richiede una serie di autorizzazioni EC2. L'interfaccia di rete consente al client (produttore o consumatore) di comunicare con il broker Amazon MQ. L'interfaccia di rete è considerata interna all'ambito del servizio di Amazon MQ, pur facendo parte del VPC dell'account.

avvertimento

Questa interfaccia di rete deve essere modificata o eliminata. La modifica o l'eliminazione dell'interfaccia di rete può causare una perdita permanente della connessione tra il VPC e il broker.

Diagram showing client connection to Amazon MQ broker via Elastic Network Interface within customer VPC. (AI generated)

Usa sempre il pooling delle connessioni

In uno scenario con un singolo produttore e un singolo consumatore (ad esempio il tutorial Getting Started with Amazon MQ), puoi utilizzare una singola classe ActiveMQConnectionFactory per ogni produttore e consumatore. Ad esempio:

// 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();

Tuttavia, in scenari più realistici con più produttori e consumatori, creare un numero elevato di connessioni per più produttori può essere costoso e inefficiente. In questi scenari, è consigliabile raggruppare più richieste del produttore utilizzando la classe PooledConnectionFactory. Ad esempio:

Nota

I consumatori dei messaggi non dovrebbero mai utilizzare la 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();

Usa sempre Failover Transport per la connessione a più endpoint del broker

Se è necessario che l'applicazione si connetta a più endpoint del broker, ad esempio quando si utilizza una modalità di implementazione attiva/standby o quando si esegue una migrazione da un broker di messaggistica on-premise ad Amazon MQ, usare il Trasporto del failover per consentire ai consumatori di connettersi in modo casuale a uno dei due. Ad esempio:

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

Evita l'uso di selettori di messaggi

È possibile usare selettori JMS per collegare filtri ad abbonamenti ad argomenti (per instradare i messaggi ai consumatori in base ai loro contenuti). Tuttavia, l'uso di selettori JMS riempie il buffer filtro del broker Amazon MQ, impedendo che i messaggi vengano filtrati.

In generale, non consentire ai consumatori di instradare i messaggi perché, per il disaccoppiamento ottimale di consumatori e produttori, questi devono essere entrambi temporanei.

Preferisci destinazioni virtuali ad abbonamenti durevoli

Un abbonamento durevole garantisce che il consumatore riceva tutti i messaggi pubblicati in un argomento, ad esempio, dopo il ripristino di una connessione persa. Tuttavia, l'uso di abbonamenti durevoli preclude anche l'uso di consumatori concorrenti e può causare problemi di prestazioni su scala. Valuta se utilizzare invece destinazioni virtuali.

Se si utilizza il peering Amazon VPC, evitare gli IP client nell'intervallo CIDR 10.0.0.0/16

Se stai configurando il peering Amazon VPC tra l'infrastruttura on-premise e il broker Amazon MQ, non devi configurare le connessioni client con gli IP nell'intervallo CIDR 10.0.0.0/16.