2016-05-09 12 views
5

Ich möchte einen Flow von einem Kafka-Cluster/-Thema im Thr-Cluster in einen anderen Kafka-Cluster in der Entwicklungsumgebung für Skalierbarkeits- und Regressionstest bringen.Nachrichten von einem Kafka-Thema zu einem anderen Kafka-Thema replizieren

Für die Entenband-Lösung kaskadiere ich einen Kafka-Konsumenten und -Produzenten, aber mein Instinkt sagt mir, dass es einen besseren Weg geben sollte. Aber ich konnte noch keine gute Lösung finden. Kann mir jemand helfen?

Antwort

7

Wenn Sie Daten von einem Cluster zu einem anderen replizieren möchten, gibt es ein Kafka-Tool namens MirrorMaker.

Kafka wird mit einem Werkzeug zum Spiegeln von Daten zwischen Kafka-Clustern geliefert. Das Tool liest von einem Quellcluster und schreibt es in einen Zielcluster. Daten werden von Themen im Quellcluster gelesen und in ein Ziel mit demselben Namen im Zielcluster geschrieben.

Hier Syntax MirrorMaker Tool auszuführen:

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

Sie dieses Skript in kafka Installationsverzeichnis finden. Hier müssen Sie consumer.properties Ihres source cluster und producer.properties Ihres destination cluster bereitstellen. Sie können auf die weiße Liste setzen, welche Themen durch die Option --whitelist gespiegelt werden sollen.

Sie können mehr Informationen finden über Mirroring data between clusters

Hinweis: MirrorMaker Kopien von Daten in derselben topic_name in destination cluster als source cluster

+0

Großes Werkzeug! Aber was, wenn ich nur letzte N Nachrichten vom Thema T brauche? In unserem Fall ist prod Thema zu groß, und wir brauchen nur einen Teil davon (sagen wir letzte 1M Nachrichten) in uat env zu verwenden. – pls

0

Kafka ist im Grunde eine Nachrichtenwarteschlange, deshalb hat es ein passives Verhalten: etwas hat zu put Nachrichten in es (producer), und etwas muss Nachrichten von es ziehen (consumer).

Wenn Sie eine Art Pipeline zwischen zwei Kafka-Themen erstellen möchten, so dass Nachrichten von einem Thema automatisch zum anderen Thema gehen, benötigen Sie Code, der die Eigenschaften des Verbrauchers aus dem ersten Thema und hat ein Produzent zum zweiten Thema.

Abhängig von Ihrer Programmiersprache können Sie zwischen einigen gut dokumentierten Producer- und/oder Consumer-Lösungen wählen.

Für anspruchsvollere Fällen können Sie Apache Sturm Besuche etc.

Verwandte Themen