2017-06-28 2 views
0

Ich muss den Wert Serializer/Deserializer in meinem Kafka Setup ändern (zu Testzwecken habe ich den IntegerSerializer/IntegerDeserializer benutzt). Mit der JAVA API funktioniert es genau wie erwartet; Bei Verwendung der Konsolenwerkzeuge scheint es jedoch nicht korrekt zu funktionieren.Kafka-Console-Producer ignoriert Wert-Serializer?

All die Fehlersuche, die ich getan habe, hat mich zu einer Schlussfolgerung geführt: Es scheint, dass der Kafka-Konsolenhersteller die Serializer-Optionen ignoriert. Ich habe --property value.serializer und --producer-property value.serializer und --value-serializer ausprobiert und es in einer Konfiguration mit dem Argumenteingestellt.

Es ist nicht nur nicht Serialisierung der Daten als eine ganze Zahl, es ist nicht einmal egal, wenn ich Nonsense als Argument Wert eingeben. Mit dem kafka-console-consumer (was perfekt mit seinem IntegerDeserializer funktioniert), wenn ich --value-deserializer not.a.real.class eingib, wird eine Klasse nicht gefunden Exception werfen; jedoch --value-serializer not.a.real.class auf dem Kafka-Konsolen-Hersteller, tut nichts.

Das Setzen dieser Werte auf den Producer in der JAVA-API funktioniert perfekt (und löst eine Ausnahme aus, wenn ich Nonsense als Serializer-Klasse eingabe), aber nicht bei Verwendung des Kafka-Konsolen-Producers.

Dies ist ein Beispiel für eine der Möglichkeiten, wie ich versuchte, die Konsolenhersteller auszuführen:

kafka-console-producer --broker-list IPADDRESS:9092 --topic TOPIC --property value.serializer=org.apache.kafka.common.serialization.IntegerSerializer 

und die damit verbundenen Verbraucher:

kafka-console-consumer --bootstrap-server IPADDRESS:9092 --topic TOPIC --property value.deserializer=org.apache.kafka.common.serialization.IntegerDeserializer 

Hat jemand diese Arbeit mit dem Befehl bekommen verwaltet Linienwerkzeuge? Gibt es etwas Offensichtliches, dass ich vermisse?

Antwort

2

Dies ist ein known bug im Konsolenhersteller. Sie können umgehen, indem Sie die Option --old-producer an das Tool übergeben.

+0

Ich habe versucht, dies zu googlen und konnte keine Beispiele dafür finden. Dass JIRA von 2015 ist, das ist enttäuschend. Vielen Dank. – latreides