我需要在我的Kafka设置中更改值序列化器/反序列化器(出于测试目的,我一直在使用IntegerSerializer / IntegerDeserializer)。使用JAVA API,它完全按预期工作;但是在使用控制台工具时,它似乎无法正常工作。
我所做的所有故障排除都让我得出一个结论:看来kafka-console-producer忽略了Serializer选项。我尝试了--property value.serializer
和--producer-property value.serializer
以及--value-serializer
并将其设置为--producer.config
参数的配置。
它不仅没有将数据序列化为整数,它甚至不关心我是否作为参数值输入废话。使用kafka-console-consumer(与其IntegerDeserializer完美配合)如果我输入--value-deserializer not.a.real.class
,它将抛出一个未找到类的异常;然而,kafka-console-producer上的--value-serializer not.a.real.class
什么也没做。
在JAVA API中的生产者上设置这些值,可以很好地工作(如果我输入废话作为序列化程序类,则会抛出异常),但在使用kafka-console-producer时则不会。
这是我尝试运行控制台生产者的方法之一的示例:
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
有没有人设法使用命令行工具?有什么明显的东西我不见了吗?