2016-07-13 20 views
1

Ich habe zwei Makler. die erste Läufe 0.9 und die zweite Läufe 0.10Kafka: kopiere Themen zwischen verschiedenen Versionen?

Verschiedene Arbeiter und Dämonen konsumieren und produzieren Nachrichten auf beiden Brokern.

Für eine Anwendung brauche ich Nachrichten von einem 0.9 Thema Verbrauchsmaterial von einer Anwendung, die KStreams verwendet und mit dem 0.10-Broker verbunden ist.

Gibt es eine einfache Möglichkeit, nur das eine Thema von 0.9 zu 0.10 zu kopieren? Oder die 0.10 Clients verwenden, um eine Verbindung zu 0.9 herzustellen? Ich würde es hassen, auf beide Fassungen im selben Glas zurückgreifen zu müssen. Den 0.9-Broker mit einem 0.10-Client zu konsumieren, scheint nicht zu funktionieren.

Antwort

3

Im Allgemeinen sind nur Kafka-Broker abwärtskompatibel (nicht Kafka-Client). Somit kann ein Client eine Verbindung zu neueren Brokern herstellen, jedoch nicht zu einem älteren.

Da Kafka Streams Bibliothek 0.10.x Client verwendet, funktioniert es nur mit 0.10.x Broker.

Daher sollte die Aktualisierung Ihres Brokers wie hier beschrieben: https://kafka.apache.org/documentation.html#upgrade der beste Weg sein (dies ist sicher, da Broker rückwärtskompatibel sind und somit keine anderen Anwendungen brechen, die diesen Broker mit älteren Clients verwenden).

Alternativ können Sie auch Mirror Maker verwenden, um das Thema von 0.9.x Cluster auf 0.10.x Cluster zu replizieren.

-1

Meine Lösung war, Jarjar zu verwenden, um das 0.9-Clients-Jar neu zu schreiben, so dass die Klassen/Typen nicht mit dem 0.10-Client in Konflikt stehen. Es ist schmutzig, aber es funktioniert um die Meinung des JVM über zwei Versionen der gleichen Bibliothek.