我想用Kafka的游戏机制作人, kafka-console-producer . 似乎在默认情况下,它使用字符串序列化程序。是否可以将kafka控制台生产者设置为使用json序列化程序?
kafka-console-producer
7hiiyaii1#
如果您可以控制输入数据,那么就没有理由显式地将json序列化程序设置到控制台生产者上json序列化程序只是字符串序列化程序的扩展;它还获取原始字符串对象并转换为字节。另外,普通字符串也是有效的json类型。Kafka只存储字节-它不关心你的数据以什么格式存在
lxkprmvk2#
除了stringserializer是默认的之外,我还想补充一点,您可以通过在以下生产者配置中提供类名来选择所需的任何序列化程序(甚至自定义实现):
key.serializer value.serializer
然后,您的使用者将需要使用适当的反序列化程序,您可以在以下使用者配置中设置该反序列化程序:
key.deserializer value.deserializer
apache kafka文档编辑:一开始我以为serializer类有一个默认值,但根据kafka文档,情况似乎不是这样。它可以根据生成的记录中的键对和值对所使用的数据类型进行设置。在任何情况下,这些都是您需要配置的参数,以便在实现所需的序列化程序/反序列化程序时设置特定的类。
2条答案
按热度按时间7hiiyaii1#
如果您可以控制输入数据,那么就没有理由显式地将json序列化程序设置到控制台生产者上
json序列化程序只是字符串序列化程序的扩展;它还获取原始字符串对象并转换为字节。另外,普通字符串也是有效的json类型。
Kafka只存储字节-它不关心你的数据以什么格式存在
lxkprmvk2#
除了stringserializer是默认的之外,我还想补充一点,您可以通过在以下生产者配置中提供类名来选择所需的任何序列化程序(甚至自定义实现):
然后,您的使用者将需要使用适当的反序列化程序,您可以在以下使用者配置中设置该反序列化程序:
apache kafka文档
编辑:一开始我以为serializer类有一个默认值,但根据kafka文档,情况似乎不是这样。它可以根据生成的记录中的键对和值对所使用的数据类型进行设置。在任何情况下,这些都是您需要配置的参数,以便在实现所需的序列化程序/反序列化程序时设置特定的类。