【问题标题】:kafka-console-producer ignores value serializer?kafka-console-producer 忽略值序列化器?
【发布时间】:2017-12-01 20:55:07
【问题描述】:

我需要在我的 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

有没有人设法使用命令行工具来完成这项工作?我有什么明显的遗漏吗?

【问题讨论】:

    标签: apache-kafka kafka-producer-api


    【解决方案1】:

    这是控制台生产者中的known bug。您可以通过将--old-producer 选项传递给该工具来解决此问题。

    【讨论】:

    • 我试图用谷歌搜索它,但找不到它工作的例子。 JIRA 来自 2015 年,这令人失望。谢谢。
    • 这个变通办法真的有效吗?这仍然对我不起作用:kafka-console-producer --broker-list IPADDRESS:9092 --topic TOPIC --producer-property value.serializer=org.apache.kafka.common.serialization.IntegerSerializer.
    猜你喜欢
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2021-03-11
    • 2021-11-25
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多