2016-10-25 6 views
2

Ist der Kafka Consumer 0.10 mit 0.9 Broker kompatibel?Ist kafka consumer 0.10 abwärtskompatibel?

Wenn ich mich nicht irre, wird der 0,9 Verbraucher immer noch als Beta betrachtet, während 0,10 stabil ist, oder? Deshalb bin ich daran interessiert, die 0.10-Version zu verwenden, aber meine Broker-Version ist 0.9 und ich möchte diese noch nicht aufrüsten.

Antwort

11

Wenn Sie 0.10 Clients verwenden möchten, müssen Sie Ihren Cluster auf 0.10 aufrüsten.

Kafka ist abwärtskompatibel in Bezug auf Clients, aber nicht vorwärtskompatibel. Das heißt, ein 0.9-Client kann einen 0.10-Cluster verwenden, aber ein 0.10-Client kann keinen 0.9-Cluster verwenden.

Die Idee besteht darin, zuerst den Cluster auf 0.10 zu aktualisieren und dann schrittweise Clients von 0.9 auf 0.10 zu migrieren.

+0

Ok, das klingt vernünftig. Gibt es Unterlagen, die das erwähnen? Hast du es selbst ausprobiert? Danke –

+1

Es ist implizit hier dokumentiert https://kafka.apache.org/protocol.html#protocol_compatibility. "Der Server wird Anfragen mit einer Version, die er nicht unterstützt, ablehnen und antwortet dem Client immer mit dem genau erwarteten Protokollformat, basierend auf der Version, die in seiner Anfrage enthalten ist." Und ja, ich habe beide Fälle mit kafka-console-consumer.sh mit --new-consumer-Flag getestet. Das ist der neue Java-Consumer. –

+0

Ist es wichtig, ob der Kafka-Broker scala 2.11 verwendet, aber der kafka-Client/Produzent scala 2.12 verwendet? Es scheint zu funktionieren, aber wollte nur überprüfen? – Rory

2

Sie haben nicht gesagt, in welcher Sprache Ihr Client geschrieben ist und welche Client-Bibliotheken Sie verwenden. Einige Clients (wie diejenigen, die auf librdkafka basieren) können Verbindungen mit einem älteren Broker handhaben, aber die allgemeine Regel (die auch für die standardmäßigen Apache kafka java-Clients gilt) ist, dass der Broker die gleiche oder eine höhere Versionsnummer haben muss als die Clients. Mit anderen Worten, Kafka ist abwärtskompatibel, aber noch nicht vollständig abwärtskompatibel.

+0

Ja, ich meinte die neue Java Consumer API. Danke, dass du es aufgezeigt hast. –

Verwandte Themen