Esegui la migrazione a un cluster Amazon MSK - Amazon Managed Streaming per Apache Kafka

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à.

Esegui la migrazione a un cluster Amazon MSK

Amazon MSK Replicator può essere utilizzato per la migrazione di MSK cluster. Per informazioni, consulta Cos'è Amazon MSK Replicator?. In alternativa, puoi usare Apache MirrorMaker 2.0 per migrare da un cluster non MSK cluster a un cluster AmazonMSK. Per un esempio di come eseguire questa operazione, consulta Migrare un cluster Apache Kafka locale su Amazon utilizzando. MSK MirrorMaker Per informazioni sull'uso MirrorMaker, consulta Mirroring dei dati tra cluster nella documentazione di Apache Kafka. Ti consigliamo di eseguire la configurazione in una configurazione ad alta MirrorMaker disponibilità.

Una descrizione dei passaggi da seguire quando si utilizza MirrorMaker per migrare a un cluster MSK
  1. Crea il cluster di destinazione MSK

  2. Inizia MirrorMaker da un'EC2istanza Amazon all'interno dello VPC stesso Amazon del cluster di destinazione.

  3. Ispeziona il MirrorMaker ritardo.

  4. Dopo aver MirrorMaker recuperato il ritardo, reindirizza produttori e consumatori al nuovo cluster utilizzando i broker bootstrap del MSK cluster.

  5. MirrorMakerSpegnere.

MirrorMaker best practice 1.0

Questo elenco di best practice si applica alla MirrorMaker versione 1.0.

  • Esegui MirrorMaker sul cluster di destinazione. In questo modo, se si verifica un problema di rete, i messaggi sono ancora disponibili nel cluster di origine. Se esegui MirrorMaker sul cluster di origine e gli eventi sono memorizzati nel buffer nel produttore e c'è un problema di rete, gli eventi potrebbero andare persi.

  • Se è richiesta la crittografia dei dati in transito, eseguirla nel cluster di origine.

  • Per i consumatori, impostare auto.commit.enabled=false

  • Per i produttori, impostare

    • max.in.flight.requests.per.connection=1

    • retries=Int.Max_Value

    • acks=all

    • max.block.ms = Long.Max_Value

  • Per un elevato throughput produttore:

    • Esegui il buffer di messaggi e compila batch di messaggi: tune buffer.memory, batch.size, linger.ms

    • Ottimizza i buffer dei socket: receive.buffer.bytes, send.buffer.bytes

  • Per evitare la perdita di dati, disattiva il commit automatico all'origine, in modo che MirrorMaker possa controllare i commit, cosa che in genere esegue dopo aver ricevuto l'ack dal cluster di destinazione. Se il produttore ha acks=all e il cluster di destinazione ha impostato min.insync.replicas su più di 1, i messaggi vengono mantenuti su più di un broker nella destinazione prima che il consumatore esegua il commit dell'offset all'origine. MirrorMaker

  • Se l'ordine è importante, puoi impostare i tentativi su 0. In alternativa, per un ambiente di produzione, imposta il numero massimo di connessioni in transito su 1 per garantire che non venga eseguito il commit dei batch inviati senza seguire un ordine se un batch non riesce a metà. In questo modo, ogni batch inviato viene ritentato finché il batch successivo non viene inviato. Se max.block.ms non è impostato sul valore massimo e se il buffer del produttore è pieno, potrebbe verificarsi una perdita di dati (a seconda di alcune delle altre impostazioni). Questo può bloccare e causare uno stato di congestione nel consumatore.

  • Per elevato throughput

    • Incrementa buffer.memory.

    • Incrementa le dimensioni batch.

    • Ottimizza linger.ms per consentire il riempimento dei batch. Ciò consente inoltre una migliore compressione, meno utilizzo della larghezza di banda della rete e meno storage sul cluster. Questo comporta un aumento della conservazione.

    • Monitor e utilizzo della memoria. CPU

  • Per elevato throughput consumatore

    • Aumenta il numero di thread/consumatori per MirrorMaker processo: num.streams.

    • Aumenta il numero di MirrorMaker processi tra le macchine prima di aumentare i thread per consentire un'elevata disponibilità.

    • Aumenta il numero di MirrorMaker processi prima sulla stessa macchina e poi su macchine diverse (con lo stesso ID di gruppo).

    • Isola gli argomenti con una velocità effettiva molto elevata e utilizza istanze separate MirrorMaker .

  • Per gestione e configurazione

    • Strumenti di gestione AWS CloudFormation dell'uso e della configurazione come Chef e Ansible.

    • Usa EFS i supporti Amazon per mantenere tutti i file di configurazione accessibili da tutte le EC2 istanze Amazon.

    • Usa i contenitori per scalare e gestire facilmente le istanze. MirrorMaker

  • In genere, è necessario più di un consumatore per saturare un produttore. MirrorMaker Pertanto, configura più consumatori. Innanzitutto, configurali su macchine diverse per fornire elevata disponibilità. Quindi, dimensiona le singole macchine fino ad avere un consumatore per ogni partizione, con i consumatori distribuiti in modo uniforme tra le macchine.

  • Per elevato throughput di inserimento e consegna, ottimizza i buffer di ricezione e invio perché le relative impostazione predefinite potrebbero essere troppo basse. Per ottenere le massime prestazioni, assicuratevi che il numero totale di stream (num.streams) corrisponda a tutte le partizioni degli argomenti che state tentando di copiare nel MirrorMaker cluster di destinazione.

Vantaggi di 2. MirrorMaker *

  • Utilizza il framework e l'ecosistema Apache Kafka Connect.

  • Rileva nuovi argomenti e partizioni.

  • Sincronizza automaticamente la configurazione degli argomenti tra cluster.

  • Supporta coppie di cluster "attiva/attiva", così come qualsiasi numero di cluster attivi.

  • Fornisce nuove metriche, tra cui end-to-end la latenza di replica su più data center e cluster.

  • Emette gli offset necessari per eseguire la migrazione dei consumatori tra cluster e fornisce strumenti per la traslazione dell'offset.

  • Supporta un file di configurazione di alto livello per specificare più cluster e flussi di replica in un'unica posizione, rispetto alle proprietà produttore/consumatore di basso livello per ogni processo 1.*. MirrorMaker