我需要更改Kafka设置中的值序列化程序/反序列化程序(出于测试目的,我一直在使用IntegerSerializer/IntegerSerializer)。使用JAVA API,它可以完全按照预期工作;但是,在使用控制台工具时,它似乎不能正常工作。
我所做的所有故障排除都让我得出了一个结论:kafka控制台生产者似乎忽略了序列化选项。我尝试了--property value.serializer
、--producer-property value.serializer
和--value-serializer
,并在配置中使用--producer.config
参数对其进行设置。
它不仅没有将数据序列化为整数,它甚至不关心我是否输入了无用的参数值。对于kafka-console-consumer (与其IntegerDeserializer完美配合),如果我进入--value-deserializer not.a.real.class
,它将抛出一个类not found异常;然而,kafka-console-producer上的--value-serializer not.a.real.class
什么也不做。
在JAVA API中的producer上设置这些值可以很好地工作(并且,如果我输入nonsense作为序列化程序类,则会抛出异常),但在使用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
有没有人能用命令行工具来解决这个问题呢?我是不是明显漏掉了什么?
转载请注明出处:http://www.xhjyjj.com/article/20230526/1223122.html