Spring Kafka 消费 JsonNode objects
Spring Kafka Consume JsonNode objects
我有一项服务正在生成负载类型为 com.fasterxml.jackson.databind.JsonNode
的 Kafka 消息。当我使用此消息时,我希望将其序列化为 POJO,但我收到以下消息:
IllegalArgumentException: Incorrect type specified for header
'kafka_receivedMessageKey'. Expected [class com.example.Person] but
actual type is [class com.fasterxml.jackson.databind.node.ObjectNode]
如何配置生产者或消费者部分以按我的预期工作?
我认为这些是我可以采取的方法:
Kafka Consumer 应该忽略 __Key_TypeId__
如果它是 JsonNode
的子类
或
如果 Kafka Producer 是 JsonNode
的子类,它应该生成一条没有 __Key_TypeId__
header 的消息
但是我该如何实施这两种方法?或者还有其他选择吗?
您可以在生产者上将 JsonSerializer.ADD_TYPE_INFO_HEADERS
设置为 false
,或者在消费者上将 JsonDeserializer.USE_TYPE_INFO_HEADERS
设置为 false。
我有一项服务正在生成负载类型为 com.fasterxml.jackson.databind.JsonNode
的 Kafka 消息。当我使用此消息时,我希望将其序列化为 POJO,但我收到以下消息:
IllegalArgumentException: Incorrect type specified for header 'kafka_receivedMessageKey'. Expected [class com.example.Person] but actual type is [class com.fasterxml.jackson.databind.node.ObjectNode]
如何配置生产者或消费者部分以按我的预期工作?
我认为这些是我可以采取的方法:
Kafka Consumer 应该忽略 __Key_TypeId__
如果它是 JsonNode
或
如果 Kafka Producer 是 JsonNode
__Key_TypeId__
header 的消息
但是我该如何实施这两种方法?或者还有其他选择吗?
您可以在生产者上将 JsonSerializer.ADD_TYPE_INFO_HEADERS
设置为 false
,或者在消费者上将 JsonDeserializer.USE_TYPE_INFO_HEADERS
设置为 false。