Spring Kafka消耗JsonNode对象

时间:2019-07-08 18:51:38

标签: apache-kafka spring-kafka

我有一个服务正在生成类型为com.fasterxml.jackson.databind.JsonNode的有效负载的Kafka消息。使用此消息时,我希望将其序列化为POJO,但是我收到以下消息:

  

IllegalArgumentException:为标头指定的类型不正确   'kafka_receivedMessageKey'。预期的[class com.example.Person]但   实际类型是[类com.fasterxml.jackson.databind.node.ObjectNode]

如何配置生产者或消费者零件以使其按预期工作?

我认为这些是我可以采取的方法:

如果Kafka Consumer是__Key_TypeId__的子类,则应该忽略JsonNode

OR

如果Kafka Producer是__Key_TypeId__的子类,则它应该生成没有JsonNode头的消息

但是我该如何实现这两种方法呢?还是还有其他选择?

1 个答案:

答案 0 :(得分:2)

请参见reference manual

您可以在生产者上将JsonSerializer.ADD_TYPE_INFO_HEADERS设置为false,或在消费者上将JsonDeserializer.USE_TYPE_INFO_HEADERS设置为false。