Come posso trasferire dati tra cluster Amazon MSK in account diversi con MirrorMaker 2 in esecuzione su MSK Connect?
Desidero utilizzare MirrorMaker 2.0 (MM2) in esecuzione su MSK Connect per trasferire dati tra cluster Amazon Managed Streaming per Apache Kafka (Amazon MSK) in diversi account AWS.
Risoluzione
Configura il peering VPC
Quando i cluster Amazon MSK si trovano in Amazon Virtual Private Cloud (Amazon VPC) diversi, devi creare una connessione peering VPC .
I gruppi di sicurezza associati al cluster Amazon MSK di origine devono consentire tutto il traffico proveniente dai gruppi di sicurezza del cluster di destinazione. I gruppi di sicurezza del cluster di destinazione devono inoltre consentire tutto il traffico proveniente dai gruppi di sicurezza del cluster Amazon MSK di origine. Per ulteriori informazioni, consulta Aggiornamento dei gruppi di sicurezza per fare riferimento a gruppi di sicurezza peer.
Nota: per fare riferimento a un gruppo di sicurezza in un altro account, includi il numero di account nel campo Origine o Destinazione.
Crea un plugin con informazioni sul plugin MM2
Nota: i plugin personalizzati di MSK Connect accettano un file o una cartella in formato .jar o .zip.
Completa i seguenti passaggi:
-
Per creare una cartella di prova e comprimerla, esegui questi comandi:
mkdir mm2 zip mm2.zip mm2 -
Carica l'oggetto.zip nel bucket Amazon Simple Storage Service (Amazon S3) nell'account di destinazione:
aws s3 cp mm2.zip s3://mytestbucket/Nota: sostituisci s3://mytestbucket/ con l'URL del tuo bucket Amazon S3.
Apache Kafka e MSK Connect dispongono di librerie MirrorMaker integrate, per cui non è necessario aggiungere altri file .jar per questa funzionalità. -
Nell'account di destinazione, utilizza il file .zip per creare un plugin personalizzato e assegna un nome al file mm2-connect-plugin.
Nota: quando utilizzi MSK Connect, devi disporre di un plugin personalizzato al momento della creazione del connettore.
Crea un connettore per MSK Connect nell'account di destinazione
Completa i seguenti passaggi:
-
Apri la console Amazon MSK.
-
Nel pannello di navigazione, alla voce MSK Connect, scegli Connettori.
-
Scegli Crea connettore.
-
Scegli Utilizza il plugin personalizzato esistente.
-
In Plugin personalizzati, seleziona il plugin personalizzato che hai creato, quindi scegli Avanti.
-
Inserisci un nome per il connettore.
(Facoltativo) Inserisci una descrizione. -
Nell'elenco dei cluster, scegli il cluster di destinazione.
-
Aggiungi una configurazione simile all'esempio seguente nel campo di configurazione del connettore:
connector.class=org.apache.kafka.connect.mirror.MirrorSourceConnector tasks.max=1 clusters=primary,replica source.cluster.alias=primary target.cluster.alias=replica topics=example.* replication.factor=2 topic.creation.default.replication.factor=2 topic.creation.default.partitions=2 consumer.group.id=mm2-connector refresh.groups.interval.seconds=20 refresh.topics.interval.seconds=20 sync.topic.configs.interval.seconds=20 sync.topic.acls.interval.seconds=20 producer.enable.idempotence=true transforms=renameTopic transforms.renameTopic.type=org.apache.kafka.connect.transforms.RegexRouter transforms.renameTopic.regex=primary.(.*) transforms.renameTopic.replacement=$1 key.converter=org.apache.kafka.connect.converters.ByteArrayConverter value.converter=org.apache.kafka.connect.converters.ByteArrayConverter # Source cluster options source.cluster.bootstrap.servers= source.cluster.security.protocol=PLAINTEXT # Target cluster options target.cluster.bootstrap.servers= target.cluster.security.protocol=PLAINTEXT -
Imposta la capacità del connettore.
-
In Configurazione del worker, scegli Utilizza la configurazione predefinita di MSK.
-
In Autorizzazioni di accesso, scegli il ruolo AWS Identity and Access Management (AWS IAM) che fornisce le autorizzazioni necessarie a MSK Connect. Quindi scegli Avanti.
-
Nella pagina Sicurezza, alla voce Crittografia - in transito, scegli Traffico non crittografato. Quindi scegli Avanti.
-
Facoltativamente, nella pagina Registri, imposta la consegna del log. Quindi scegli Avanti.
-
In Rivedi e crea, scegli Crea connettore.
Nota: con la configurazione precedente, per replicare ogni topic dal cluster di origine, MM2 crea due topic nel cluster di destinazione. Ad esempio, se hai il topic exampleTopic1 nel cluster di origine, MM2 crea i topic primary.exampleTopic1 e exampleTopic1 nel cluster di destinazione. Quindi indirizza i messaggi al topic exampleTopic1.
Crea un'istanza client
Devi creare un'istanza client per creare topic e produrre o utilizzare dati dai topic.
Completa i seguenti passaggi:
-
Avvia un'istanza Amazon Elastic Compute Cloud (Amazon EC2) e connettiti all'istanza.
-
Esegui questo comando per installare Java sul computer client:
sudo yum -y install java-11 -
Esegui questo comando per scaricare Apache Kafka:
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz tar -xzf kafka_2.12-2.8.1.tgz -
Crea il topic exampletopic1 nel cluster Amazon MSK nell'account di origine:
kafka-installation-path/bin/kafka-topics.sh --create --bootstrap-server SourceMSKclusterBootstrapServerString --replication-factor 3 --partitions 1 --topic exampletopic1Nota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci SourceMSKclusterBootstrapServerString con la stringa del server di bootstrap del tuo cluster Amazon MSK di origine.
-
Produci dati nel cluster nell'account di origine:
Kafka-installation-path/bin/kafka-console-producer.sh --broker-list SourceMSKclusterBootstrapServerString --topic exampletopic1Nota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci SourceMSKclusterBootstrapServerString con la stringa del server di bootstrap del tuo cluster Amazon MSK di origine.
Output atteso:>message 1 >message 2 -
Elenca i topic nel cluster nell'account di destinazione:
Kafka-installation-path/bin/kafka-topics.sh --bootstrap-server TargetMSKclusterBootstrapServerString --listNota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci TargetMSKclusterBootstrapServerString con la stringa del server di bootstrap del cluster Amazon MSK di destinazione.
Esempio di output:__amazon_msk_canary __amazon_msk_connect_configs_mm2-***** __amazon_msk_connect_offsets_mm2-***** __amazon_msk_connect_status_mm2-***** __consumer_offsets exampleTopic1 primary.exampleTopic1 -
Consuma dati dal cluster di destinazione:
Kafka-installation-path/bin/kafka-console-consumer.sh --bootstrap-server TargetMSKclusterBootstrapServerString --topic exampletopic1 --from-beginningNota: sostituisci kafka-installation-path con il percorso in cui hai installato Kafka sul tuo sistema. Sostituisci TargetMSKclusterBootstrapServerString con la stringa del server di bootstrap del cluster Amazon MSK di destinazione.
Output atteso:>message 1 >message 2
Informazioni correlate
Esegui la migrazione dei carichi di lavoro Kafka in un cluster Amazon MSK
- Argomenti
- Analytics
- Lingua
- Italiano
