Como transfiro dados entre clusters do Amazon MSK em contas diferentes com o MirrorMaker 2 que é executado no MSK Connect?
Quero usar o MirrorMaker 2.0 (MM2) que é executado no MSK Connect para transferir dados entre clusters do Amazon Managed Streaming for Apache Kafka (Amazon MSK) em contas da AWS diferentes.
Resolução
Configurar o emparelhamento da VPC
Quando os clusters do Amazon MSK estão em diferentes Amazon Virtual Private Clouds (Amazon VPC), é preciso criar uma conexão de emparelhamento da VPC.
Os grupos de segurança associados ao cluster do Amazon MSK de origem devem permitir todo o tráfego dos grupos de segurança do cluster de destino. Os grupos de segurança do cluster de destino também devem permitir todo o tráfego dos grupos de segurança do cluster do Amazon MKS de origem. Para mais informações, consulte Atualizar seus grupos de segurança para fazer referência a grupos de segurança de mesmo nível.
Observação: para referenciar um grupo de segurança em outra conta, inclua o número da conta no campo Origem ou Destino.
Criar um plug-in com informações do plug-in MM2
Observação: os plug-ins personalizados do MSK Connect aceitam um arquivo ou pasta com formato .jar ou .zip.
Conclua as etapas a seguir:
-
Para criar uma pasta de teste e depois compactá-la, execute os seguintes comandos:
mkdir mm2 zip mm2.zip mm2 -
Carregue o objeto .zip no seu bucket do Amazon Simple Storage Service (Amazon S3) na conta de destino:
aws s3 cp mm2.zip s3://mytestbucket/Observação: substitua s3://mytestbucket/ pelo URL do seu bucket do Amazon S3.
O Apache Kafka e o MSK Connect têm bibliotecas MirrorMaker incorporadas, então não é preciso adicionar arquivos .jar adicionais para essa funcionalidade. -
Na conta de destino, use o arquivo .zip para criar um plug-in personalizado e nomeie o arquivo mm2-connect-plugin.
Observação: ao usar o MSK Connect, é preciso ter um plug-in personalizado na criação do conector.
Criar um conector do MSK Connect na conta de destino
Conclua as etapas a seguir:
-
Abra o console do Amazon MSK.
-
No painel de navegação, em MSK Connect, escolha Conectores.
-
Escolha Criar conector.
-
Escolha Usar plug-in personalizado atual.
-
Em Plug-ins personalizados, selecione o plug-in personalizado que você criou e escolha Avançar.
-
Insira um nome para o conector.
(Opcional) Insira uma descrição. -
Na lista de clusters, escolha o cluster de destino.
-
Adicione uma configuração semelhante ao exemplo a seguir no campo de configuração do conector:
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 -
Defina a capacidade do seu conector.
-
Em Configuração do processamento, escolha Usar configuração padrão do MSK.
-
Em Permissões de acesso, escolha o perfil do AWS Identity and Access Management (AWS IAM) que fornece as permissões necessárias para o MSK Connect. Em seguida, escolha Próximo.
-
Na página Segurança, em Criptografia - em trânsito, escolha Tráfego de texto simples. Em seguida, escolha Próximo.
-
(Opcional) Na página Logs, defina a entrega de logs. Em seguida, escolha Próximo.
-
Em Revisar e criar, escolha Criar conector.
Observação: com a configuração anterior, para replicar cada tópico do cluster de origem, o MM2 cria dois tópicos no cluster de destino. Por exemplo, se você tiver o tópico exampleTopic1 no cluster de origem, o MM2 criará os tópicos primary.exampleTopic1 e exampleTopic1 no cluster de destino. Em seguida, o MM2 encaminha as mensagens para o tópico exampleTopic1.
Criar uma instância de cliente
Você deve criar uma instância de cliente para criar tópicos e produzir ou consumir dados de tópicos.
Conclua as etapas a seguir:
-
Execute uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e, em seguida, conecte-se à instância.
-
Para instalar o Java na máquina cliente, execute o comando a seguir:
sudo yum -y install java-11 -
Para baixar o Apache Kafka, execute o comando a seguir:
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 -
Crie o tópico exampletopic1 no cluster do Amazon MSK na conta de origem:
kafka-installation-path/bin/kafka-topics.sh --create --bootstrap-server SourceMSKclusterBootstrapServerString --replication-factor 3 --partitions 1 --topic exampletopic1Observação: substitua kafka-installation-path pelo caminho de onde você instalou o Kafka em seu sistema. Substitua SourceMSKclusterBootstrapServerString pela string do servidor Bootstrap do cluster do Amazon MSK de origem.
-
Produza dados no cluster na conta de origem:
Kafka-installation-path/bin/kafka-console-producer.sh --broker-list SourceMSKclusterBootstrapServerString --topic exampletopic1Observação: substitua kafka-installation-path pelo caminho de onde você instalou o Kafka em seu sistema. Substitua SourceMSKclusterBootstrapServerString pela string do servidor Bootstrap do cluster do Amazon MSK de origem.
Saída esperada:>message 1 >message 2 -
Liste os tópicos do cluster na conta de destino:
Kafka-installation-path/bin/kafka-topics.sh --bootstrap-server TargetMSKclusterBootstrapServerString --listObservação: substitua kafka-installation-path pelo caminho de onde você instalou o Kafka em seu sistema. Substitua TargetMSKclusterBootstrapServerString pela string do servidor Bootstrap do cluster do Amazon MSK de destino.
Exemplo de saída:__amazon_msk_canary __amazon_msk_connect_configs_mm2-***** __amazon_msk_connect_offsets_mm2-***** __amazon_msk_connect_status_mm2-***** __consumer_offsets exampleTopic1 primary.exampleTopic1 -
Consuma dados do cluster de destino:
Kafka-installation-path/bin/kafka-console-consumer.sh --bootstrap-server TargetMSKclusterBootstrapServerString --topic exampletopic1 --from-beginningObservação: substitua kafka-installation-path pelo caminho de onde você instalou o Kafka em seu sistema. Substitua TargetMSKclusterBootstrapServerString pela string do servidor Bootstrap do cluster do Amazon MSK de destino.
Saída esperada:>message 1 >message 2
Informações relacionadas
- Tópicos
- Analytics
- Idioma
- Português

Conteúdo relevante
- feita há 9 meses
- feita há 8 meses
AWS OFICIALAtualizada há 9 meses