kafka-console-producer 忽略值序列化器?
kafka-console-producer ignores value serializer?
我需要更改我的 Kafka 设置中的值 serializer/deserializer(出于测试目的,我一直在使用 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
它将抛出 class not found 异常;但是 --value-serializer not.a.real.class
在 kafka-console-producer 上什么都不做。
在 JAVA API 中对生产者设置这些值,效果很好(如果我输入废话作为序列化器 class 会抛出异常)但在使用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
有没有人设法使用命令行工具来解决这个问题?有什么明显的我想念的吗?
这是控制台制作人中的known bug。您可以通过将 --old-producer
选项传递给该工具来解决它。
我需要更改我的 Kafka 设置中的值 serializer/deserializer(出于测试目的,我一直在使用 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
它将抛出 class not found 异常;但是 --value-serializer not.a.real.class
在 kafka-console-producer 上什么都不做。
在 JAVA API 中对生产者设置这些值,效果很好(如果我输入废话作为序列化器 class 会抛出异常)但在使用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
有没有人设法使用命令行工具来解决这个问题?有什么明显的我想念的吗?
这是控制台制作人中的known bug。您可以通过将 --old-producer
选项传递给该工具来解决它。