Come faccio a trasferire dati tra cluster Amazon MSK in account diversi con MirrorMaker 2 in esecuzione su MSK Connect?
Desidero utilizzare MirrorMaker 2.0 (MM2) che funziona su MSK Connect per trasferire dati tra cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK) in diversi account.
Risoluzione
Configurare il peering VPC
Poiché i cluster Amazon MSK si trovano in cloud privati virtuali (VPC) diversi, è necessario creare una connessione peering VPC. Crea questa connessione peering VPC con un VPC in un altro account AWS nella stessa regione AWS o in una regione diversa. Per ulteriori informazioni, vedere 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 MSK. Per ulteriori informazioni, consulta Aggiornare i gruppi di sicurezza per fare riferimento a gruppi di sicurezza tra pari.
Nota: Per fare riferimento a un gruppo di sicurezza in un altro account, includi il numero di conto nel campo Origine o Destinazione. Esempio: 123456789012/sg-1a2b3c4d
Crea un plugin con informazioni sul plugin MM2
I plugin personalizzati di MSK Connect accettano un file o una cartella con terminazione.jar o .zip.
Completa i seguenti passaggi:
- Crea una cartella o un file fittizio e poi comprimilo:
mkdir mm2 zip mm2.zip mm2
- Carica l'oggetto.zip nel tuo bucket Amazon Simple Storage Service (Amazon S3) nell'account di destinazione:
aws s3 cp mm2.zip s3://mytestbucket/
Poiché Apache Kafka e MSK Connect dispongono di librerie MirrorMaker integrate, non è necessario aggiungere altri file.jar per questa funzionalità. MSK Connect richiede la presenza di un plug-in personalizzato alla creazione del connettore. Pertanto, è necessario crearne uno vuoto come riferimento.
- Nell'account di destinazione, usa il file.zip per creare un plug-in personalizzato. Usa mm2-connect-plugin come nome per il plug-in personalizzato.
Creare un connettore MSK Connect
Completa i seguenti passaggi per creare un connettore nell'account di destinazione:
-
Apri la console Amazon MSK.
-
Nel pannello di navigazione, in MSK Connect, scegli Connettori.
-
Scegli Crea connettore.
-
Nell'elenco dei plugin personalizzati, seleziona quello che si trova accanto al plug-in personalizzato che hai creato, quindi scegli Avanti.
-
Inserisci un nome per il connettore e, facoltativamente, una descrizione.
-
Dall'elenco dei cluster, scegli il cluster di destinazione.
-
Copia la seguente configurazione, quindi incollala nel campo di configurazione del connettore. Modifica l'esempio in base al tuo caso d'uso.
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_MSK_Bootstrap_Server_PLAINTEXT> source.cluster.security.protocol=PLAINTEXT # Destination cluster options target.cluster.bootstrap.servers=<Target_MSK_Bootstrap_Server_PLAINTEXT> target.cluster.security.protocol=PLAINTEXT
-
Imposta la capacità del connettore.
-
In Configurazione Worker, selezionare Usa la configurazione predefinita MSK.
-
In Autorizzazioni di accesso, scegli il ruolo AWS Identity and Access Management (IAM) che fornisce le autorizzazioni necessarie a MSK Connect. Quindi, scegli Avanti.
-
Nella pagina Sicurezza, in Crittografia - in transito, scegli Plaintext. Quindi, scegli Avanti.
-
Facoltativamente, nella pagina Registri, imposta la consegna del registro. Quindi, scegli Avanti.
-
In Rivedi e crea, scegli Crea connettore.
Nota: Con questa configurazione, per replicare ogni argomento dal cluster di origine, MM2 crea due argomenti nel cluster di destinazione. Ad esempio, se hai l'argomento exampleTopic1 nel cluster di origine, MM2 crea gli argomenti primary.exampleTopic1 ed exampleTopic1 nel cluster di destinazione. I messaggi vengono indirizzati all'argomento exampleTopic1.
Crea un'istanza client
È necessario creare un'istanza client per creare argomenti e produrre o utilizzare dati dagli argomenti.
-
Avvia un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in base alle tue esigenze nell'account di origine o di destinazione. Quindi, connettiti all'istanza.
-
Esegui il seguente comando per installare Java sul computer client:
sudo yum -y install java-11
- Esegui il seguente 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 l'argomento exampletopic1 nel cluster Amazon MSK nell'account di origine:
<path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server <Source MSK cluster BootstrapServerString> --replication-factor 3 --partitions 1 --topic exampletopic1
- Produci dati nel cluster sull'account di origine:
<path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list <Source MSK cluster BootstrapServerString> --topic exampletopic1
>message 1 >message 2
- Elenca gli argomenti del cluster sull'account di destinazione:
<path-to-your-kafka-installation>/bin/kafka-topics.sh --bootstrap-server <Target MSK cluster BootstrapServerString> --list
L'output deve essere simile al seguente:
__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:
<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server <Target MSK cluster BootstrapServerString> --topic exampletopic1 --from-beginning
message 1 message 2
Informazioni correlate
Migrazione dei cluster utilizzando MirrorMaker di Apache Kafka
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa