Direkt zum Inhalt

Wie übertrage ich Daten zwischen Amazon-MSK-Clustern in verschiedenen Konten mit MirrorMaker 2, das auf MSK Connect ausgeführt wird?

Lesedauer: 4 Minute
0

Ich möchte MirrorMaker 2.0 (MM2) verwenden, das auf MSK Connect ausgeführt wird, um Daten zwischen Amazon Managed Streaming für Apache Kafka (Amazon MSK)-Clustern in verschiedenen AWS-Konten zu übertragen.

Lösung

VPC-Peering einrichten

Wenn sich die Amazon-MSK-Cluster in verschiedenen Amazon Virtual Private Clouds (Amazon VPC) befinden, musst du eine VPC-Peering-Verbindung herstellen.

Die Sicherheitsgruppen, die dem Amazon-MSK-Quell-Cluster zugeordnet sind, müssen den gesamten Datenverkehr aus den Sicherheitsgruppen des Ziel-Clusters zulassen. Die Sicherheitsgruppen des Ziel-Clusters müssen auch den gesamten Datenverkehr aus den Sicherheitsgruppen des Quell-Clusters von Amazon MSK zulassen. Weitere Informationen findest du unter Aktualisieren der Sicherheitsgruppen, um auf Peer-Sicherheitsgruppen zu verweisen.

Hinweis: Um auf eine Sicherheitsgruppe in einem anderen Konto zu verweisen, gib die Kontonummer in das Feld Quelle oder Ziel ein.

Einen Plug-in mit MM2-Plug-in-Informationen erstellen

Hinweis: Benutzerdefinierte MSK-Connect-Plug-ins akzeptieren eine Datei oder einen Ordner mit einem JAR- oder ZIP-Format.

Führe die folgenden Schritte aus:

  1. Führe die folgenden Befehle aus, um einen Testordner zu erstellen und den Ordner anschließend zu komprimieren:

    mkdir mm2
    zip mm2.zip mm2
  2. Lade das ZIP-Objekt in den Amazon Simple Storage Service (Amazon S3)-Bucket im Zielkonto hoch:

    aws s3 cp mm2.zip s3://mytestbucket/

    Hinweis: Ersetze s3://mytestbucket/ durch deine Amazon-S3-Bucket-URL.
    Apache Kafka und MSK Connect verfügen über integrierte MirrorMaker-Bibliotheken, sodass du für diese Funktion keine zusätzlichen JAR-Dateien hinzufügen musst.

  3. Verwende im Zielkonto die ZIP-Datei, um ein benutzerdefiniertes Plug-in zu erstellen, und benenne die Datei mm2-connect-plugin.
    Hinweis: Wenn du MSK Connect verwendest, benötigst du bei der Connector-Erstellung ein benutzerdefiniertes Plug-in.

Erstellen eines MSK-Connect-Konnektors im Zielkonto

Führe die folgenden Schritte aus:

  1. Öffne die Amazon-MSK-Konsole.

  2. Wähle im Navigationsbereich unter MSK Connect die Option Konnektoren aus.

  3. Wähle Konnektor erstellen aus.

  4. Wähle Vorhandenes benutzerdefiniertes Plug-in nutzen.

  5. Wähle unter Benutzerdefiniertes Plug-in das benutzerdefinierte Plug-in aus, das du erstellt hast, und klicke dann auf Weiter.

  6. Gib einen Namen für den Konnektor ein.
    (Optional) Gib eine Beschreibung ein.

  7. Wähle aus der Liste der Cluster den Zielcluster aus.

  8. Füge eine Konfiguration ähnlich dem folgenden Beispiel in das Konnektor-Konfigurationsfeld ein:

    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
  9. Lege die Kapazität für deinen Konnektor fest.

  10. Wähle unter Worker-Konfiguration die Option **MSK-Standardkonfiguration verwenden ** aus.

  11. Wähle unter Zugriffsberechtigungen die AWS Identity and Access Management (IAM)-Rolle aus, welche die erforderlichen Berechtigungen für MSK Connect bietet. Wähle dann Weiter.

  12. Wähle auf der Seite Sicherheit unter Verschlüsselung – während der Übertragung die Option Klartextdatenverkehr aus. Wähle dann Weiter.

  13. (Optional) Lege auf der Seite Protokolle die Protokollübermittlung fest. Wähle dann Weiter.

  14. Wähle unter Überprüfen und erstellen die Option Konnektor erstellen aus.

Hinweis: Mit der vorherigen Konfiguration erstellt MM2 zwei Themen im Zielcluster, um die einzelnen Themen aus dem Quellcluster zu replizieren. Wenn du beispielsweise das Thema exampleTopic1 auf dem Quellcluster hast, erstellt MM2 die Themen primary.exampleTopic1 und exampleTopic1 auf dem Zielcluster. Dann leitet MM2 Nachrichten an das Thema exampleTopic1 weiter.

Erstellen einer Client-Instance

Du musst eine Client-Instance erstellen, um Themen zu erstellen und Daten aus Themen zu erzeugen oder zu nutzen.

Führe die folgenden Schritte aus:

  1. Starte eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance und stelle dann eine Verbindung mit der Instance her.

  2. Führe den folgenden Befehl aus, um Java auf dem Client-Computer zu installieren:

    sudo yum -y install java-11
  3. Führe den folgenden Befehl aus, um Apache Kafka herunterzuladen:

    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
  4. Erstelle das Thema exampletopic1 im Amazon-MSK-Cluster im Quellkonto:

    kafka-installation-path/bin/kafka-topics.sh --create --bootstrap-server SourceMSKclusterBootstrapServerString --replication-factor 3 --partitions 1 --topic exampletopic1

    Hinweis: Ersetze kafka-installation-path durch den Pfad, in dem du Kafka auf dem System installiert hast. Ersetze SourceMSKclusterBootstrapServerString durch die Bootstrap-Serverzeichenfolge deines Amazon-MSK-Quellclusters.

  5. Produziere Daten im Cluster auf dem Quellkonto:

    Kafka-installation-path/bin/kafka-console-producer.sh --broker-list SourceMSKclusterBootstrapServerString --topic exampletopic1

    Hinweis: Ersetze kafka-installation-path durch den Pfad, in dem du Kafka auf dem System installiert hast. Ersetze SourceMSKclusterBootstrapServerString durch die Bootstrap-Serverzeichenfolge deines Amazon-MSK-Quellclusters.
    Erwartete Ausgabe:

    >message 1
    >message 2
  6. Liste die Themen im Cluster auf dem Zielkonto auf:

    Kafka-installation-path/bin/kafka-topics.sh --bootstrap-server TargetMSKclusterBootstrapServerString --list

    Hinweis: Ersetze kafka-installation-path durch den Pfad, in dem du Kafka auf dem System installiert hast. Ersetze TargetMSKclusterBootstrapServerString durch die Bootstrap-Serverzeichenfolge deines Amazon-MSK-Zielclusters.
    Beispielausgabe:

    __amazon_msk_canary  __amazon_msk_connect_configs_mm2-*****  
    __amazon_msk_connect_offsets_mm2-*****  
    __amazon_msk_connect_status_mm2-*****  
    __consumer_offsets  
    exampleTopic1  
    primary.exampleTopic1
  7. Daten aus dem Zielcluster nutzen:

    Kafka-installation-path/bin/kafka-console-consumer.sh --bootstrap-server TargetMSKclusterBootstrapServerString --topic exampletopic1 --from-beginning

    Hinweis: Ersetze kafka-installation-path durch den Pfad, in dem du Kafka auf dem System installiert hast. Ersetze TargetMSKclusterBootstrapServerString durch die Bootstrap-Serverzeichenfolge deines Amazon-MSK-Zielclusters.
    Erwartete Ausgabe:

    >message 1
    >message 2

Ähnliche Informationen

Zu einem Amazon-MSK-Cluster migrieren

AWS OFFICIALAktualisiert vor 5 Monaten