当生成的消息是消费者没有引用的模型类型时,如何反序列化消费者中的消息?
How to deserialize message in consumer when produced message is a model type which consumer has no reference to?
我正在尝试反序列化从消费者范围之外的服务生成的消息。
如果 serialized/deserialized 模型的包不同,则会出现“kafka 模型不在受信任的包中”错误。
所以我想我有两个选择。将消息生成为 json/string 或让消费者包含生产者库并使用相同的模型反序列化消息。
我想在消费者中反序列化时手动忽略 header 类型的消息,但我没能做到。有什么办法可以做到这一点,还是我坚持使用上述两个选项?
您需要将默认类型配置为消费者版本并将JsonDeserializer.USE_TYPE_INFO_HEADERS
设置为false。
或者,您需要提供类型映射https://docs.spring.io/spring-kafka/docs/current/reference/html/#serdes-mapping-types
示例见此答案:
我正在尝试反序列化从消费者范围之外的服务生成的消息。 如果 serialized/deserialized 模型的包不同,则会出现“kafka 模型不在受信任的包中”错误。
所以我想我有两个选择。将消息生成为 json/string 或让消费者包含生产者库并使用相同的模型反序列化消息。
我想在消费者中反序列化时手动忽略 header 类型的消息,但我没能做到。有什么办法可以做到这一点,还是我坚持使用上述两个选项?
您需要将默认类型配置为消费者版本并将JsonDeserializer.USE_TYPE_INFO_HEADERS
设置为false。
或者,您需要提供类型映射https://docs.spring.io/spring-kafka/docs/current/reference/html/#serdes-mapping-types
示例见此答案: