我需要在我的Kafka设置(用于测试目的,我一直使用IntegerSerializer/IntegerDeserializer)中更改值序列化器/反序列化器。使用JAVA API,它可以像预期的那样工作。但是,当使用控制台工具时,它似乎不能正常工作。kafka-console-producer忽略值序列化程序?
我所做的所有问题解决都让我得出一个结论:似乎卡夫卡控制台生产者忽略了串行器选项。我试过--property value.serializer
和--producer-property value.serializer
和--value-serializer
,并将其设置为--producer.config
参数。
它不仅没有将数据序列化为一个整数,它甚至不关心我是否输入无意义作为参数值。如果我输入--value-deserializer not.a.real.class
,那么它会抛出一个没有发现异常的类;如果我输入--value-deserializer not.a.real.class
,它将抛出一个类未找到的异常;然而在kafka-console-producer上的--value-serializer not.a.real.class
却什么都不做。
在JAVA API中将这些值设置在生产者中,完美地工作(并且如果我作为序列化程序类输入无意义时会抛出异常),但在使用kafka控制台生产者时不会发生异常。
这是方式之一的一个例子,我试图运行控制台制片人:
kafka-console-producer --broker-list IPADDRESS:9092 --topic TOPIC --property value.serializer=org.apache.kafka.common.serialization.IntegerSerializer
及相关消费:
kafka-console-consumer --bootstrap-server IPADDRESS:9092 --topic TOPIC --property value.deserializer=org.apache.kafka.common.serialization.IntegerDeserializer
有没有人设法用命令该工作线工具?有什么明显的我失踪了?
我试图谷歌这并找不到它的工作的例子。 JIRA从2015年开始,这令人失望。谢谢。 – latreides