2016-05-09 19 views
5

Voglio fare un flusso da un cluster/argomento di Kafka nel cluster di produzione in un altro cluster Kafka nell'ambiente di sviluppo per la scalabilità e il test di regrrssione.Replica di messaggi da un argomento di Kafka a un altro argomento di kafka

Per la soluzione di nastro d'anatra, faccio a cascata un consumatore e un produttore di Kafka, ma il mio istinto mi dice che dovrebbe esserci un modo migliore. Ma non ho ancora trovato una buona soluzione. Qualcuno può aiutarmi?

risposta

7

Se si desidera replicare i dati da un cluster a un altro, è disponibile uno strumento kafka denominato MirrorMaker.

Kafka viene fornito con uno strumento per il mirroring dei dati tra i cluster Kafka. Lo strumento legge da un cluster di origine e scrive in un cluster di destinazione. I dati verranno letti dagli argomenti nel cluster di origine e scritti in un argomento con lo stesso nome nel cluster di destinazione.

Ecco sintassi per eseguire MirrorMaker strumento:

bin/kafka-run-class.sh kafka.tools.MirrorMaker 
     --consumer.config consumer.properties 
     --producer.config producer.properties --whitelist my-topic 

È possibile trovare questo script nella directory di installazione di Kafka. Qui è necessario fornire consumer.properties del numero source cluster e producer.properties del numero destination cluster. Puoi autorizzare gli argomenti che devono essere rispecchiati tramite l'opzione --whitelist.

Potete trovare ulteriori informazioni su Mirroring data between clusters

Nota: MirrorMaker copia i dati nella stessa topic_name in destination cluster come source cluster

+0

Grande strumento! Ma cosa succede se ho bisogno solo degli ultimi N messaggi dall'argomento T? Nel nostro caso l'argomento prod è troppo grande, e abbiamo bisogno solo di una parte di esso ogni giorno (ad esempio gli ultimi messaggi 1M) da utilizzare in uat env. – pls

0

Kafka è fondamentalmente una coda di messaggistica, quindi ha un comportamento passivo: qualcosa deve metti i messaggi in it (producer), e qualcosa deve tirare i messaggi da it (consumer).

Se si desidera creare una sorta di pipeline tra due argomenti di kafka, in modo che i messaggi di un argomento si spostino automaticamente sull'altro argomento, è necessario un codice che avrà le proprietà del consumatore dal primo argomento e un produttore al secondo argomento.

A seconda del linguaggio di programmazione, è possibile scegliere tra un produttore pronto e ben documentato e/o soluzioni di consumo.

Per i casi più sofisticati è possibile controllare Apache Tempesta, ecc

Problemi correlati