我需要更改kafka设置中的值序列化程序/反序列化程序(出于测试目的,我一直在使用integerserializer/integerdeserializer)。使用javaapi,它完全按照预期工作;但是,当使用控制台工具时,它似乎无法正常工作。
我所做的所有故障排除都让我得出了一个结论:kafka控制台生产者似乎忽略了序列化程序选项。我试过了 --property value.serializer
以及 --producer-property value.serializer
以及 --value-serializer
并将其设置为 --producer.config
争论。
它不仅无法将数据序列化为整数,而且它甚至不关心是否输入无意义的参数值。如果我进入 --value-deserializer not.a.real.class
它将抛出一个类找不到异常;然而 --value-serializer not.a.real.class
Kafka游戏机制作人,什么都不做。
在javaapi中的producer上设置这些值可以很好地工作(如果我在serializer类中输入drouse,则会抛出一个异常),但在使用kafka控制台producer时不会。
这是我尝试运行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
有没有人能用命令行工具实现这一点?我有什么明显的遗漏吗?
1条答案
按热度按时间kuhbmx9i1#
这是控制台生成器中的一个已知错误。你可以通过传递
--old-producer
工具的选项。